Arduino non funziona!!

Buonasera, vi spiego il mio problema con la speranza che possiate aiutarmi. Ho scritto dopo diverso tempo un programma per caricarlo su Arduino, lo compilo, tutto ok, lo provo su un simulatore online, tutto ok, a questo punto decido di caricarlo fisicamente su Arduino. Nulla, Arduino nn esegue un bel niente, a questo punto decido di prendere un altro Arduino pensando il primo potesse avere qualche problema, e nulla anche cn questo, allora decido di caricare un programma di default(una semplice accensione di un Led con un pulsante) e nulla anche con questo. Per concludere, avviene il caricamento del programma, la connessione è ok ma il programma sembra non girare. Aiutatemi cortesemente che sto uscendo pazzo.

Allora … dato che NON abbiamo la “palla di cristallo” …

… o tu metti il codice (… mi raccomando, in conformità al regolamento, punto 7, racchiuso tra i tag CODE che, in fase di edit, ti inserisce il bottone </> … primo a sinistra), oppure possiamo solo cercare di indovinare … ::slight_smile:

Guglielmo

gpb01:
Allora ... dato che NON abbiamo la "palla di cristallo" ...

Guglielmo

questa mi mancava :smiley: :smiley:

Il codice tra poco lo allegherò, ma ho specificato che non funziona nemmeno con un programma di default

E comunque poche info dai.
Quale Arduino ? Uno, mega, nano ? Originale o clone ? Quale versione IDE usi ?
Hai settato la porta com corretta ? Hai provato a cambiare il cavetto usb ?
Cosa non "funziona" ? Compila ma non fa upload (dovrebbe dare msg d'errore) oppure carica ma non fa quel che ti aspetti ?

Provato sia su arduino uno che su arduino mega,(entrambi cloni ma usati in passato senza problemi) il programma viene caricato correttamente su arduino, ma una volta caricato il programma non fa nulla, qualsiasi programma io carichi, anche uno di default

int pulsante33 = 13;
int pulsante50 =12;
int pulsante66 =11;
int pulsante75 =10;
int pulsante = 9;
int rele = 7;

void setup() {
 pinMode(pulsante33,INPUT);
 pinMode(pulsante50,INPUT);
 pinMode(pulsante66,INPUT);
 pinMode(pulsante75,INPUT);
 pinMode(pulsante,INPUT);
 pinMode(rele,OUTPUT);


}

void loop() {
 if(digitalRead(pulsante33) == HIGH) {
   digitalWrite(rele,HIGH);
   delay(39600);
   digitalWrite(rele,LOW);
 }
 else if(digitalRead(pulsante50)==HIGH){
   digitalWrite(rele,HIGH);
   delay(60000);
   digitalWrite(rele,LOW);
 }
 else if(digitalRead(pulsante66)==HIGH){
   digitalWrite(rele,HIGH);
   delay(79200);
   digitalWrite(rele,LOW);
 }
 else if(digitalRead(pulsante75)==HIGH){
   digitalWrite(rele,HIGH);
   delay(93000);
   digitalWrite(rele,LOW);
 }
   else if(digitalRead(pulsante)==HIGH){
   digitalWrite(rele,HIGH);
}
   else {
digitalWrite(rele, LOW); 

   } 
 }

Il codice DEVI racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare ( pulsante </> ).
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.

Carica il semplice blink sul led del pin 13, aggiungi Serial.begin(9600); in setup e anche una Serial.println(“ciao”); nella loop, da Monitor Seriale dovresti vedere qualcosa.

ok, ecco un aggiornamento, dopo varie prove adesso ho qualcosa in uscita, simulo l'uscita con un led ed esso si accende ma c'è un problema, si accende appena parte il programma e non varia nulla anche chiudendo il pulsante. Che cosa sto sbagliando?

Ti é stato chiesto di metter il codice nel Tag CODE e non QUOTE. Edita e correggi per favore.

Ciao Uwe

Ragazzi va bene avete ragione, però qui mi sembra si stia attaccati più alla forma che al contenuto, questo non toglie che devo seguire il regolamento, cosa che farò appena mi siederò davanti al pc dato che dal cell non me lo fa fare, però voglio dire, ho posto una domanda ma su 10 risposte 7 sono legate alla forma in cui è scritta la domanda o su come abbia allegato il programma. Ripeto, dopo lo modificherò ma gradirei essere aiutato piuttosto che leggere sempre le stesse cose finalizzate a tutt’altro. Grazie.

Step187:
... gradirei essere aiutato piuttosto che leggere sempre le stesse cose finalizzate a tutt’altro.

Purtroppo qui NON funziona così, il regolamento viene prima di tutto e nessuno ti risponderà finché NON avrai sistemato il codice ...
... te lo avevo indicato io quando ti ho chiesto di mettere il codice, te lo ha richiesto Nid e te lo ha ribadito Uwe.

Inoltre, visto che continui a procastinare ... NON tollererò risposte sino a quando, come chiesto, non verrà rispettato il REGOLAMENTO !

Guglielmo

Ho apportato le modifiche richieste

Hai messo le resistenze di pull down sugli ingressi per i pulsanti?

certo, da 1 Kohm

... sei conscio vero che, ogni volta che premi un pulsante e che esso viene riconosciuto ... poi NON puoi fare più nulla per tutto il tempo del delay() (... che vedo va da un minimo di 39.6 secondi ad un massimo di 93 secondi) e che quindi, per tutto quel tempo, Arduino è come se fosse morto ?

Guglielmo

Già, ma io ancora non ho capito quale sia il problema che lamenta.

Se è QUEL programma, magari è perché appena si preme un pulsante (o un pulsante va HIGH per qualsiasi ragione, una resistenza pulldown messa male, fluttuazioni quantistiche del vuoto, la fusione di due buchi neri nella galassia di Andromeda...) non succede nulla per 39.6 secondi (ma perché sto valore?) se va bene, fino anche a 93 secondi (anche qui...).

Poi dice che il programma "non funziona" ossia "non esegue un bel niente", che è l'equivalente informatico del portare l'auto dal meccanico e dire che "qualcosa non va" e andarsene.

Poi gli è stato suggerito di usare un qualsiasi sketch che faccia "qualcosa" ad esempio sulla seriale, ma questa prova non la vedo eseguita.

Per cui neanche io ho la sfera di cristallo (Guglielmo, la "palla di cristallo" è più una protesi...;)), o spiega per bene cosa intende e se gli si chiede di fare qualche prova che la faccia dandocene il risultato, altrimenti non credo si possa andare molto avanti.

nid69ita:
Carica il semplice blink sul led del pin 13, aggiungi Serial.begin(9600); in setup e anche una Serial.println("ciao"); nella loop, da Monitor Seriale dovresti vedere qualcosa.

Infatti @docdoc, come sottolinei tu, questo è quel che gli ho proposto, senza led o pulsanti che è roba hardware da collegare, proprio per discriminare se il problema è sw o hw.
Ma @step187 preferisci fare prove tue con le tue idee.

Dici:
"il programma non fa nulla, qualsiasi programma io carichi, anche uno di default"
Quale programma di default ? Scusa, ma che caspita vuol dire ? Senza info precise non sappiamo che dirti.

Step187:
ok, ecco un aggiornamento, dopo varie prove adesso ho qualcosa in uscita, simulo l’uscita con un led ed esso si accende ma c’è un problema, si accende appena parte il programma e non varia nulla anche chiudendo il pulsante. Che cosa sto sbagliando?

E se non posti questo nuovo programma, di nuovo, che possiamo dirti ?

Io continuo a suggerirti di NON provare nulla di collegato, semplicemente msg verso serial monitor.
Se questo funziona allora possiamo verifica con un led collegato a farlo lampeggiare. Se poi quello va allora proviamo con un pulsante e un led. Ma un passo alla volta. Così si fa debug di un problema. Si parte da una cosa semplice e si aggiunge roba.

Se sul monitor seriali vedi i msg e poi invece attaccando hw (led e/o pulsanti) non funziona come deve, o il programma è errato (e lo posti) oppure hai i pin danneggiati.

Buonasera, allora cerco di rispondere un po a tutti, il programma è sempre quello che ho postato nella pagina precedente, se in uscita simulo un carico con un led, senza collegare nessun pulsante, appena avvio il programma il led si accende e poi ovviamente non risponde a nessun comando, resta solo il led acceso, ho eseguito la prova di caricare il programma di default “Blink” con annesso messaggio “ciao” a monitor seriale e questo funziona perfettamente. Quindi, per concludere, presumo che il problema sia nel programma e spererei che qualcuno più bravo di me possa rivedere e correggere, in poche parole il programma deve, una volta premuto il pulsante33 ad esempio attivare l’uscita per il numero di secondi indicato per poi disattivarla, stessa cosa con gli altri pulsanti, uno alla volta ovviamente e solo su mia richiesta, in base a quale pigio, cosa diversa con l’input “pulsante” che deve attivare l’uscita solo per il tempo in cui lo premo. Grazie a tutti e spero stavolta di essere stato un po più chiaro.