ho fatto un programma in vb6 che invia un stringa ad arduino che riconosciuta
deve accedere 2 gialli fissi, e dopo 3 secondi accendere e lampeggiare 4 led bianchi.
poi spegnere (sempre con comando che arriva da vb6 e questo e tutto ok) prima i 4 bianchi lampeggianti e dopo 5 secondi i due led gialli fissi.
/*
accensione di 3 led e successivamente di 5 connesso sulla porta 12 e 11
da un comando inviato da VB6 sulla porta seriale (com4).
http://arduino.cc/forum/index.php/topic,59472.0.html
*/
#define led 12 // led connesso al pin n°12
#define led2 11 // led connesso al pin n°11
byte carattere = 0; // variabile per contenere il carattere ricevuto
void setup()
{
Serial.begin(9600); // imposto la UART per lavorare a 9600
pinMode(led, OUTPUT); // imposto il pin sul quale è collegato il led come uscita
pinMode(led2, OUTPUT); // imposto il secondo pin sul quale è collegato il led come uscita
Serial.flush(); // svuoto il buffer di ricezione seriale
}
void loop()
{
if (Serial.available() >0) // Controllo se il buffer di ricezione contiene qualcosa
{
carattere = Serial.read(); // leggo il carattere ricevuto e lo memorizzo in carattere
Serial.flush(); // svuoto il buffer di ricezione seriale
}
if (carattere=='A' || carattere=='a') // ho ricevuto la A maiuscola o minuscola
{
Serial.println("Attivita' iniziata ");
delay(500);
digitalWrite(led,HIGH); // accendo 2 led gialli collegati alla porta 12
delay(500);
digitalWrite(led2,HIGH); // accendo 4 led bianchi collegati alla porta 11
delay(500);
//Serial.print(carattere,BYTE); stampa (invia) il carattere in seriale
}
if (carattere=='C' || carattere=='c') // ho ricevuto la C maiuscola o minuscola
{
Serial.println("Attivita' interrotta ");
delay(500);
digitalWrite(led2,LOW); // spengo 5 led azzurri collegati alla porta 11
delay(500);
digitalWrite(led,LOW); // spengo 3 led gialli collegati alla porta 12
//Serial.print("Attivita' interrotta"); // invio messaggio in seriale
}
else { // qui ho deciso che in tutte le altre possibilita' resti spento
digitalWrite(led,LOW); // spengo i 2 led gialli collegati alla porta 12
digitalWrite(led2,LOW); // spengo i 4 led bianchi collegati alla alla porta 11
}
}
questo sopra e una modifica cercando di fare quello detto sopra ma nienteeeeeeeeee.
programma visual basic 6 tutto ok
Problema: non riesco a far stare fissi i gialli mentre i bianchi lampeggiano e ho problemi con la temporizzazione differenziata
nel circuito ho usato dei transistor per salvaguardare le porte arduino.
Chi mi aiuta?