/* Due fotointerruttori a forcella affiancati. Il fascio di luce viene interrotto da un disco rotante. Il senso di rotazione viene stabilito in funzione di quale fotodiodo viene illuminato per primo. */ int canaleA=6; int canaleB=9; int contatore=0; boolean avanti; boolean indietro; boolean memoriaA; boolean memoriaB; boolean direzione; void setup() { Serial.begin(9600); pinMode(6,INPUT); pinMode(9,INPUT); } void loop() { canaleA=digitalRead(6); canaleB=digitalRead(9); Serial.print(contatore); Serial.print(" Avanti "); Serial.print(avanti); Serial.print(" indietro "); Serial.println(indietro); if ( canaleB==1 && canaleA==1) { direzione=1; memoriaA=0; memoriaB=0; } if ( canaleA==0 && direzione==1) { indietro=1; avanti=0; direzione=0; } if ( canaleB==0 && direzione==1) { avanti=1; indietro=0; direzione=0; } if ( canaleB==0 && avanti==1 && memoriaA==0) { contatore=contatore+1; memoriaA=1; } if ( canaleA==0 && indietro==1 && memoriaB==0) { contatore=contatore-1; memoriaB=1; } }//---------FINE LOOP--------------
Visualizzazione post con etichetta Digitale. Mostra tutti i post
Visualizzazione post con etichetta Digitale. Mostra tutti i post
sabato 10 gennaio 2015
Senso di rotazione.
venerdì 21 novembre 2014
ARDUINO ridotto all'essenziale.
Programmate un chip ATMEGA328 fornito di bootlader con una scheda Arduino.
Rimuovete dallo zoccolo di Arduino ed inseritolo nello zoccolo saldato su una piastra millefori.
Aggiunete i due condensatori ed il quarzo.
Sulla stessa base millefori costruite uno o più stadi di uscita a relè.
Ed uno o più stadi di ingresso.Attenzione che lo stato è invertito: quando il diodo led riceve corrente il pin di ingresso di Arduino è LOW.
Un'ingresso analogico sul fotoaccoppiatore non va bene perchè 1,5V servono al diodo per cui la tensione in ingresso su Arduino andrebbe da circa 2V.
venerdì 2 novembre 2012
Elaborazione di un segnale digitale 2a
La condizione logica del pin 2 viene acquisita ed elaborata tramite la condizione IF
# define Sensore 2 # define LED 7 int StatoSensore= 0; void setup() { pinMode (Sensore, INPUT); pinMode (LED, OUTPUT); digitalWrite(Sensore, HIGH); digitalWrite(LED, LOW); Serial.begin (9600); } void loop() { StatoSensore = digitalRead (Sensore); Serial.println("\n"); if (StatoSensore == LOW) { digitalWrite(LED, HIGH); Serial.print ("Attenzione Ostacolo ");} else {digitalWrite(LED, LOW); Serial.print ("Nessun Ostacolo ");} delay (500); }
Elaborazione di un segnale digitale 1a
Gli shield che elaborano segnali digitali hanno 3 piedini: +5V; OUT;GND.
L'uscita OUT può essere HIGH (+5V) o LOW (0V) invertendo tale valore quando viene acquisita l'informazione: un ostacolo, la presenza di calore umano,un rumore...
Lo scketch è sostanzialemnte uguale per tutti e non prevede alcuna libreria.
Iscriviti a:
Post (Atom)