Есть код который отлично работает на arduino, пытаюсь его методом тыка и ктр+ц переписать на питон (так нужно) для малинки. Успехов нет, пока что могу диодом поморгать, помогите пожалуйста если не за огромное спасибо то за денежку, очень сильно нужно.
Суть какова есть купюроприемник NV9 который прошит под MDB интерфейс и работает в режиме Pulse. Есть малинка вторая с установленной убунтой. Нужно сделать обработчик для входящих данных с купюроприемника.
Купюроприемник возвращает от 1 до 9 импульсов длиной 200мс если мне память не изменяет. Собственно нужно считать импульсы и через кейс в консоль возвращать текст в стиле “принято 3 рубля”
Спасибо еще раз за помощь, код от адруино и то что у меня неполучилось на питоне кладу ниже:
Arduino
const int moneyPin=2; const int zapretaPin = 9; const int zapretbPin = 6; const int zapretcPin = 7; const int zapretdPin = 8; const int ledPin = 12; int money=0; int sum=0; unsigned long timeAllPulse1=3000; // макс. время приема купюры unsigned long timeCount1=0; void setup() { pinMode(zapretaPin, OUTPUT); pinMode(zapretbPin, OUTPUT); pinMode(zapretcPin, OUTPUT); pinMode(zapretdPin, OUTPUT); pinMode(moneyPin,INPUT); Serial.begin(9600); Serial.println("ready"); attachInterrupt(0,count_pulse1,FALLING); } void loop() { digitalWrite(zapretaPin, LOW); digitalWrite(zapretbPin, LOW); digitalWrite(zapretcPin, LOW); digitalWrite(zapretdPin, LOW); // прошло максимальное время приема купюры? if(money>0 && (millis()-timeCount1)>timeAllPulse1) { sum+=money; money=0; Serial.print("Kredit= "); Serial.println(sum); } } // обработка прерывания — получить кол-во импульсов // void count_pulse1() { detachInterrupt(0); money++; if(money==1) timeCount1=millis(); attachInterrupt(0,count_pulse1,FALLING); }
Raspberry - код не рабочий тут непойми что
#!/usr/bin/env python2.7 import RPI.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUD_UP) money = 0 sum = 0 millis = int(round(time.time() * 1000)) timeAllPulse1 = 3000 timeCount1 = 0 while (True): GPIO.wait_for_edge(4, GPIO.FALLING, timeout = 3000) money+=1 if money==1 : timeCount1=millis if money>0 & (millis-timeCount1) > timeAllPulse1 : sum+=money money=0 print(sum)