
|
![]() | #4 (permalink) Top | |
User Data registr.: 08-08-2011 Residenza: Roma
Messaggi: 5.805
| Citazione:
Questo dovrebbe funzionare, in effetti dovevo tenere conto dello stato pregresso del motore ... // definisco le variabili di lavoro boolean Stato1; boolean Stato2; boolean StatoMotore; // definisco quali sono i pin di ingresso per i due sensori const int SW1 = 2; // sensore basso const int SW2 = 3; // sensore alto // definisco il pin di uscita per comandare il motore const int PinMotore = 4; void setup() { // definisco in input i pin di ingresso per i due sensori pinMode(SW1, INPUT); pinMode(SW2, INPUT); // definisco in output il pin di uscita per il motore pinMode(PinMotore, OUTPUT); // all'avvio il motore è spento digitalWrite(PinMotore, LOW); } void loop() { // Leggo lo stato dei due sensori Stato1 = digitalRead(SW1); Stato2 = digitalRead(SW2); //Calcolo lo stato del motore, // tabella della verità: // Stato1 Stato2 StatoMotore StatoMotore Risultante // Falso Falso Falso Vero // Falso Falso Vero Vero // Falso Vero Falso Condizione non prevista // Falso Vero Vero Condizione non prevista // Vero Falso Falso Falso // Vero Falso Vero Vero // Vero Vero Falso Falso // Vero Vero Vero Falso // semplificando con le mappe di karnaugh ottengo StatoMotore = (!Stato1 && !Stato2) || (Stato1 && !Stato2 && StatoMotore); if (StatoMotore){ digitalWrite(PinMotore, HIGH); }else{ digitalWrite(PinMotore, LOW); } } Carlo
__________________ Dai un pesce ad un uomo e lo avrai sfamato per un giorno, insegnagli a pescare e lo avrai sfamato per sempre. (Confucio) I miei modelli: http://www.youtube.com/results?search_query=carloroma63 | |
![]() | ![]() |
Bookmarks |
| |
![]() | ||||
Discussione | Autore discussione | Forum | Commenti | Ultimo Commento |
problema con arduino | fabiano2007 | Circuiti Elettronici | 15 | 23 marzo 14 02:15 |