salve mi chiamo Giovanni faccio il fabbro ma ho una passione nel campo dell'electronica ho un po di dimestichezza sulla programmazione sono un pesce fuori dall'acqua sto imparando da quasi un mese ho un problema con il programma che ho creato essendo alle prime armi sono riuscito a creare quello che volevo ma
il panico arriva quando lo provo sulla moto :(che delusione non ho messo in considerazione che la moto a il punto morto cioe la (N) che dame lo riconosco tramite un interruttore 1/0
vi prego datemi una mano sto uscendo pazzo
// Definizione dei pin
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int led5 = 6;
int led6 = 7;
int bottoneSu = 9;
int bottoneGiu = 10;
int Neutro = 11;
// Definizione delle variabili
int led = 2; // led da accendere neurale //vorrei che il programma inizierebbe solo se il'interruttore neutro e acceso
void setup () {
// Impostazione dei pin come uscite
Serial.begin(9600);
pinMode (led1, OUTPUT);
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);
pinMode (led4, OUTPUT);
pinMode (led5, OUTPUT);
pinMode (led6, OUTPUT);
// Impostazione dei pin come ingressi
pinMode (bottoneSu, INPUT);
pinMode (bottoneGiu, INPUT);
pinMode (Neutro, INPUT);
// Abilitazione delle resistenze di PullUp interne sugli ingressi
digitalWrite (bottoneSu, HIGH);
digitalWrite (bottoneGiu, HIGH);
digitalWrite (Neutro, HIGH);
}
void loop () {
Serial.println(led); // mi serve solo per provare il programma poi lo cancellero
delay(500);
if (digitalRead (bottoneSu) == 1){ //se il pulsante è premuto
led++; // Incrementa la variabile led
if (led>7) { // Se la variabile supera il valore 6
led=6; // Riporta la variabile a 5
}
delay (500); // Pausa per antirimbalzo
}
if (digitalRead (bottoneGiu) == 1){ //se il pulsante è premuto
led--; // Decrementa la variabile le
if (led<1) { // Se la variabile è inferiore al valore 1
led=1; // Riporta la variabile a 1
}
delay (500); // Pausa per antirimbalzo
}
if (led==1) {
digitalWrite (led1, HIGH); // Accendi il led1
digitalWrite (led2, LOW); // Spegni il led2
digitalWrite (led3, LOW); // Spegni il led3
digitalWrite (led4, LOW); // Spegni il led4
digitalWrite (led5, LOW); // Spegni il led5
digitalWrite (led6, LOW); // Spegni il led5
}
if (led==2) { //(led==2) e il neutrale (vorrei che questo programma saltasse se l'interrutore neutro non e acceso
//se e acceso vorrei che si accende solo questo
digitalWrite (led1, LOW); // Spegni il led1
digitalWrite (led2, HIGH); // Accendi il led2
digitalWrite (led3, LOW); // Spegni il led3
digitalWrite (led4, LOW); // Spegni il led4
digitalWrite (led5, LOW); // Spegni il led5
digitalWrite (led6, LOW); // Spegni il led6
}
if (led==3) {
digitalWrite (led1, LOW); // Spegni il led1
digitalWrite (led2, LOW); // Spegni il led2
digitalWrite (led3, HIGH); // Accendi il led3
digitalWrite (led4, LOW); // Spegni il led4
digitalWrite (led5, LOW); // Spegni il led5
digitalWrite (led6, LOW); // Spegni il led6
}
if (led==4) {
digitalWrite (led1, LOW); // Spegni il led1
digitalWrite (led2, LOW); // Spegni il led2
digitalWrite (led3, LOW); // Spegni il led3
digitalWrite (led4, HIGH); // Accendi il led4
digitalWrite (led5, LOW); // Spegni il led5
digitalWrite (led6, LOW); // Spegni il led6
}
if (led==5) {
digitalWrite (led1, LOW); // Spegni il led1
digitalWrite (led2, LOW); // Spegni il led2
digitalWrite (led3, LOW); // Spegni il led3
digitalWrite (led4, LOW); // Spegni il led4
digitalWrite (led5, HIGH); // Accendi il led5
digitalWrite (led6, LOW); // Spegni il led6
}
if (led==6) {
digitalWrite (led1, LOW); // Spegni il led1
digitalWrite (led2, LOW); // Spegni il led2
digitalWrite (led3, LOW); // Spegni il led3
digitalWrite (led4, LOW); // Spegni il led4
digitalWrite (led5, LOW); // Spegni il led5
digitalWrite (led6, HIGH); // Accendi il led6
}
}
