Salve a tutti sto lavorando a un progetto con Arduino e Processing nel quale voglio controllare un motore e un servo tramite la tastiera del pc; ma, nel momento in cui faccio partire il programma in Processing su arduino si accende il led RX ma non succede nulla se io premo i tasti sulla tastiera. il circuito è funzionante in quanto al momento dell'avvio di Arduino il servo si posiziona alla posizione scritta nel setup... vi lascio qua sotto i due codici nella speranza che possiate aiutarmi
la variabile myservo è sterzo cambiata di nome (pensavo fosse più facile da capire) mentre il myservo.attach(39) è un errore di copiatura ecco il codice arduino corretto
Premetto che non conosco "Processing", ma per analogia con altri linguaggi faccio alcune osservazioni:
Riferendomi al codice Processing
All'inizio definisci "char command='0';" quindi alla variabile command associ un carattere ASCII (codice 48 o 0x30),
poi nell'associare i tasti ai rispettivi comandi usi "char command=1;" che rappresenta un valore numerico (codice 1 o 0x01)
Non vedo alcun richiamo a "void draw()" per inviare effettivamente il comando alla seriale.
Riferendomi al codice arduino Arduino
Qui ritorni a parlare di caratteri ASCII "if(incomingcommand=='0')"
Credo che stai facendo confusione tra caratteri ASCII ( '0' , '1' , '2', ecc.) e codice numerico (0-255 o 0x00 - 0xFF).
una volta messo a posto gli sketch come ti hanno detto,
se per caso hai un arduino Mega, in questo caso
non può funzionare se non metti un delay di 2 secondi nel setup.
Dopo aver sistemato i codici come suggerito ed aver inserito un println(command) in processing per verificare dalla console se processing trasformava correttamente i dati i risultati sono i seguenti:
-dalla console si possono vedere i comandi interpretati correttamente da processing
-il led rx di arduino che lampeggia
-il Servo che non si sistema nella posizione indicata nel setup()
-quando premo dei tasti non accade nulla oltre ai numeri che cambiano nella console di processing
(non uso una Arduino mega ma una Uno perciò non credo che serva il delay)
il tuo sketch completato con le apici mancanti
lo ho provato ora con il mega e funziona,
controlla i collegamenti
motorpin, high oppure low non fanno nulla
i tasti q e a fanno la stessa cosa.
i tasti a e d fanno la stessa cosa.
risolto il problema: bastava cambiare pin
con i pin 2 e 3 nonostante siano funzionanti il motore non girava e il servo non rispondeva ai comandi
utilizzando i pin 8 e 9 funziona tutto, grazie per il supporto fornito XD