0
Offline
Full Member
Karma: 2
Posts: 226
Arduino rocks
|
 |
« on: October 08, 2012, 02:04:12 am » |
buongiorno, ho la necessita di utilizzare il pin13 per comandare un contattore....solamente che appena collego l'arduino alla 12V l'uscita lampeggia e questo mi fa attrarre il conttatore 4-5 volte. come posso evitarlo?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Edison Member
Karma: 26
Posts: 1339
You do some programming to solve a problem, and some to solve it in a particular language. (CC2)
|
 |
« Reply #1 on: October 08, 2012, 02:11:57 am » |
Hai caricato il tuo programma sull'Arduino ?
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16479
Don't know what I do
|
 |
« Reply #2 on: October 08, 2012, 02:12:33 am » |
Sul pin 13 è presente anche il led "L", che viene usato durante il reset per segnalazioni da parte del bootloader. Collegando l'alimentazione la prima volta, il led "L" però non lampeggia. Lampeggia se successivamente viene resettato l'Atmega328, il reset avviene anche per l'apertura della porta seriale. Personalmente ho provato anche a collegare 12V al jack di Arduino e, come supponevo, la prima volta il led non lampeggia.
Che versione dell'Arduino usi? UNO R1, UNO R2, MEGA ecc..?
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Full Member
Karma: 2
Posts: 226
Arduino rocks
|
 |
« Reply #3 on: October 08, 2012, 02:21:47 am » |
ho l'uno...se stacco l'alimentazione e la riattacco, prima di partire il programma corretto, lampeggia il LED e quindi di conseguenza anche il mio contattore
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16479
Don't know what I do
|
 |
« Reply #4 on: October 08, 2012, 02:28:22 am » |
ho l'uno...
Che versione? R1, R2, R3? Io ho la R1 ma con il bootloader della R3 e se attacco l'alimentazione il led non lampeggia. Lampeggia solo se successivamente premo il tasto di reset.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Full Member
Karma: 2
Posts: 226
Arduino rocks
|
 |
« Reply #5 on: October 08, 2012, 02:31:30 am » |
UNO R3...
|
|
|
|
|
Logged
|
|
|
|
|
Lamezia Terme
Offline
Shannon Member
Karma: 386
Posts: 10273
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #6 on: October 08, 2012, 03:04:41 am » |
Ovvio che il,primo consiglio è quello di spostarti al pin 12  ma resterebbe il mistero, non puoi postare il tuo codice?
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Full Member
Karma: 2
Posts: 226
Arduino rocks
|
 |
« Reply #7 on: October 08, 2012, 03:12:16 am » |
sisi è che ho finito i pin...cmq lo posto! include <LiquidCrystal.h>
#define ON 1 #define OFF 0
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int enel = 6; const int gruppo = 7; const int rele1 = 8; const int rele2 = 9; const int contattore = 10; const int spia = 13;
boolean stato_enel; boolean stato_gruppo; boolean flag =0; boolean error =false; int cicli =0;
void setup(){ Serial.begin(9600); lcd.begin(16, 4); lcd.clear();
pinMode(enel, INPUT_PULLUP); pinMode(gruppo, INPUT_PULLUP); pinMode(rele1, OUTPUT); pinMode(rele2, OUTPUT); pinMode(contattore, OUTPUT); pinMode(spia, OUTPUT); }
void ritardo(int i){ Serial.print("Sto aspettando "); Serial.print(i); Serial.println(" secondi"); for (int k=0; k<i; k++){ lcd.setCursor(0,3); lcd.print("Wait "); lcd.print(i-k); lcd.write(" secondi "); delay(1000); } }
void accensione_gruppo() { Serial.println("Accensione gruppo elettrogeno in corso..."); lcd.setCursor(0,2); lcd.print("Accensione... "); lcd.setCursor(0,3); Serial.print("Tentativo n: "); lcd.print("Tentativo : "); Serial.println(cicli+1); lcd.print(cicli+1); lcd.print(" "); delay(2000); digitalWrite(rele1, HIGH); delay(2000); digitalWrite(rele2, HIGH); delay(1500); digitalWrite(rele2,LOW); cicli++; }
void spengimento_gruppo(){ Serial.println("Spengimento gruppo elettrogeno in corso..."); lcd.setCursor(0,2); lcd.print("Spengimento... "); ritardo(18); digitalWrite(contattore, LOW); ritardo(6); digitalWrite(rele1, LOW); }
void errore() { digitalWrite(spia, HIGH); digitalWrite(rele1, LOW); digitalWrite(rele2, LOW); error = true; Serial.println("ERRORE IL GRUPPO NON SI E' ACCESO"); lcd.setCursor(0,2); lcd.print(" ERRORE "); lcd.setCursor(0,3); lcd.print("NON SI E' ACCESO"); }
void loop(){ stato_enel = digitalRead(enel); //controllo se c'è rete stato_gruppo = digitalRead(gruppo); Serial.print("Stato Enel: "); Serial.println(stato_enel); Serial.print("Stato Gruppo: "); Serial.println(stato_gruppo); lcd.setCursor(0,0); lcd.print("ENEL : "); if(stato_enel==ON) lcd.print("OK "); else lcd.print("ASSENTE"); lcd.setCursor(0,1); lcd.print("GRUPPO : "); if(stato_gruppo==ON) lcd.print("ON "); else lcd.print("OFF"); //Senza enel if (stato_enel== OFF){ //senza ENEL
if (stato_gruppo == OFF) { //Gruppo Spento
if(cicli == 0) { lcd.setCursor(0,2); lcd.print(" Sto aspettando "); ritardo(12); } if (digitalRead(enel) == 0) { if(cicli<3) accensione_gruppo(); else errore(); } } if (stato_gruppo == ON){ //Gruppo Acceso e non attaccato if (flag == 0){ Serial.println("Gruppo acceso"); lcd.setCursor(0,2); lcd.print("Gruppo Acceso "); ritardo(15); //15 secondi digitalWrite(contattore, HIGH); flag = 1; cicli = 0; } if (flag == 1) { Serial.println("Gruppo acceso e collegato"); lcd.setCursor(0,3); lcd.print("Gruppo collegato"); } } }
//c'è Enel if (stato_enel == ON ) { if (stato_gruppo == ON) { spengimento_gruppo(); flag = 0; cicli=0; } if (stato_gruppo == OFF) { Serial.println(" Tutto OK"); lcd.setCursor(0,2); if (error == true ) lcd.print(" ERRORE "); else lcd.print(" "); lcd.setCursor(0,3); lcd.print(" Tutto OK "); } }
}
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16479
Don't know what I do
|
 |
« Reply #8 on: October 08, 2012, 03:25:20 am » |
Non hai finito i pin, mi pare che tu non usi quelli analogici. Sappi che questi pin possono essere utilizzati come normali pin digitali semplicemente indirizzandoli con i valori da 14 a 19 rispettivamente per A0...A5.
Comunque a me con la R1 il led non lampeggia quando collego la scheda. Ci vorrebbe la testimonianza di qualcun altro che ha la R3, forse il firmware dell'Atmega16U2 gestisce in modo diverso l'avvio.
|
|
|
|
|
Logged
|
|
|
|
|
Lamezia Terme
Offline
Shannon Member
Karma: 386
Posts: 10273
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #9 on: October 08, 2012, 03:46:33 am » |
Nello sketch parli di "spia", cosa è attaccato esattamente al pin 13? Come ti ha detto Leo puoi usare i pin analogici come digitali, ma un'altra prova potrebbe essere quella di scambiare 12 e 13 tra loro e vedere cosa succede a livello di LCD.
|
|
|
|
|
Logged
|
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 74
Posts: 7372
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #10 on: October 08, 2012, 04:57:36 am » |
Io ho la R1 ma con il bootloader della R3 e se attacco l'alimentazione il led non lampeggia. Lampeggia solo se successivamente premo il tasto di reset.
Sulla mia UNO R1 con optiboot aggiornato all'ultima versione il led non lampeggia mai quando si connette l'alimentazione indipendentemente se è da USB o esterna, lo fa solo resettandola. In tutti i casi i lampeggi dipendono dal bootloader e non dalla parte USB, però gli Arduino dotati di FTDI resettano sempre e comunque, anche con l'ultimo optiboot, perché all'avvio l'FTDI commuta varie volte lo stato del DTR e questo causa il reset della scheda. Probabilmente, tocca verificare nel sorgente del optiboot, il bootloader fa distinzione tra la condizione di power on e quella di reset, se è la prima non si avvia, quindi niente lampeggi del led, e cede subito il controllo al programma utente.
|
|
|
|
|
Logged
|
|
|
|
|
Dueville (VI)
Online
Edison Member
Karma: 15
Posts: 1052
http://cesarecacitti.wordpress.com/
|
 |
« Reply #11 on: October 08, 2012, 09:21:49 am » |
Io ho la R1 ma con il bootloader della R3 e se attacco l'alimentazione il led non lampeggia. Lampeggia solo se successivamente premo il tasto di reset.
Sulla mia UNO R1 con optiboot aggiornato all'ultima versione il led non lampeggia mai quando si connette l'alimentazione indipendentemente se è da USB o esterna, lo fa solo resettandola. In tutti i casi i lampeggi dipendono dal bootloader e non dalla parte USB, però gli Arduino dotati di FTDI resettano sempre e comunque, anche con l'ultimo optiboot, perché all'avvio l'FTDI commuta varie volte lo stato del DTR e questo causa il reset della scheda. Probabilmente, tocca verificare nel sorgente del optiboot, il bootloader fa distinzione tra la condizione di power on e quella di reset, se è la prima non si avvia, quindi niente lampeggi del led, e cede subito il controllo al programma utente. Nella mia UNO R3 quando viene connessa l'alimentazione, lampeggia il led L per farti vedere che il bootloader è partito
|
|
|
|
|
Logged
|
Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield. Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 74
Posts: 7372
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #12 on: October 08, 2012, 09:27:08 am » |
Nella mia UNO R3 quando viene connessa l'alimentazione, lampeggia il led L per farti vedere che il bootloader è partito
Probabilmente sulla tua c'è ancora la vecchia versione dell'optiboot, quella nuova la trovi allegata all'IDE 1.0.1
|
|
|
|
|
Logged
|
|
|
|
|
Dueville (VI)
Online
Edison Member
Karma: 15
Posts: 1052
http://cesarecacitti.wordpress.com/
|
 |
« Reply #13 on: October 08, 2012, 09:42:25 am » |
Nella mia UNO R3 quando viene connessa l'alimentazione, lampeggia il led L per farti vedere che il bootloader è partito
Probabilmente sulla tua c'è ancora la vecchia versione dell'optiboot, quella nuova la trovi allegata all'IDE 1.0.1 Ah, mi tocca pure aggiornare il bootloader?!?!? Ahahaha che pollo, sta sera faccio l'update!
|
|
|
|
|
Logged
|
Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield. Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16479
Don't know what I do
|
 |
« Reply #14 on: October 08, 2012, 10:52:16 am » |
sta sera faccio l'update!
Lo puoi fare anche do mani, se è per questo. 
|
|
|
|
|
Logged
|
|
|
|
|
|