Show Posts
|
|
Pages: 1 2 [3] 4
|
|
32
|
Forum 2005-2010 (read only) / Italiano / Analog output corrente 1 ampere
|
on: November 19, 2010, 09:20:26 am
|
|
Salve,
con arduino, tramite un'analogWrite, devo gestire un carico a tensione variabile, che assorbe più o meno 1 ampere
il gnd del carico, lo posso prendere da una batteria, ma il positivo lo gestisco da arduino, quindi 200mA, quindi come dovrei risolvere questo problema?
grazie
|
|
|
|
|
34
|
Forum 2005-2010 (read only) / Italiano / Re: Gestione button con arduino mega 2560
|
on: November 18, 2010, 09:25:35 am
|
grazie uwe, sei il mio idolo xd ho dovuto correggere un po la sintassi, ed ho dovuto modificare il code, perchè non funzionava... finalmente questo problema si può definire risolto  posto il code completo: //const int IN_PIN = 5; #include <Button.h> Button button = Button(5,PULLUP); const int V_LED = 8; const int G_LED = 11; const int R_LED = 13; int ritardo = 0; unsigned long tempo = 0; //int btstate = 0; boolean funct = false; //int btstateold =0; int led() { if (ritardo == 0) // accende i LED e memorizza il tempo attuale { digitalWrite(V_LED, LOW); digitalWrite(R_LED, HIGH); ritardo = 1; tempo = millis() + 1000; } if ( (ritardo == 1) && (tempo == millis())) { // aspetta che siano passate 1 secondo e cambia il colore dei led digitalWrite(V_LED, HIGH); digitalWrite(R_LED, LOW); ritardo = 2; tempo = millis() + 1000; } if ( (ritardo == 2) && (tempo == millis() )) { // aspetta ancora un secondo e mette la variabile per partire dal inizio. ritardo = 0; } }
void setup() { // pinMode(IN_PIN, INPUT); // digitalWrite(IN_PIN, HIGH); pinMode(V_LED, OUTPUT); pinMode(G_LED, OUTPUT); pinMode(R_LED, OUTPUT); Serial.begin(9600); }
void loop() { // digitalWrite(R_LED, LOW); // digitalWrite(G_LED, LOW); // digitalWrite(V_LED, LOW);
if(button.isPressed()){ if (funct == false) { funct = true; Serial.println("true");
delay(200); } else{ // digitalWrite(13,LOW); funct = false; Serial.println("false");
delay(200); } } /* if (button.wasPressed()) { } else {*/ if (funct == true) { led(); } else { digitalWrite(R_LED, LOW); digitalWrite(V_LED, LOW); ritardo = 0; }
}
grazie di tutto  ;D
|
|
|
|
|
35
|
Forum 2005-2010 (read only) / Italiano / Re: Gestione button con arduino mega 2560
|
on: November 17, 2010, 03:15:58 pm
|
ecco il codice che sto usando per le prove... //const int IN_PIN = 5; #include <Button.h> Button button = Button(5,PULLUP); const int V_LED = 8; const int G_LED = 11; const int R_LED = 13; //int btstate = 0; boolean funct = false; //int btstateold =0; int led() { digitalWrite(V_LED, LOW); digitalWrite(R_LED, HIGH);
delay(1000);
digitalWrite(V_LED, HIGH); digitalWrite(R_LED, LOW);
delay(1000);
}
void setup() { // pinMode(IN_PIN, INPUT); // digitalWrite(IN_PIN, HIGH); pinMode(V_LED, OUTPUT); pinMode(G_LED, OUTPUT); pinMode(R_LED, OUTPUT); Serial.begin(9600); }
void loop() { // digitalWrite(R_LED, LOW); // digitalWrite(G_LED, LOW); // digitalWrite(V_LED, LOW);
if(button.isPressed()){ if (funct == false) { funct = true; Serial.println("true");
delay(200); } else{ // digitalWrite(13,LOW); funct = false; Serial.println("false");
delay(200); } } /* if (button.wasPressed()) { } else {*/ if (funct == true) { led(); } else { digitalWrite(R_LED, LOW); digitalWrite(V_LED, LOW); }
} grazie... ps ho provato anche con la funzione button, collegando il button tra gnd e pin 5... ma è lo stesso... il pulsante che uso è questo: http://www.tecnoimpiantielettronica.it/prodotti/516z.jpg
|
|
|
|
|
37
|
Forum 2005-2010 (read only) / Italiano / Re: Gestione button con arduino mega 2560
|
on: November 17, 2010, 08:59:18 am
|
grazie uwe, ma dopo prove e altre prove, ho trovato il problema: i problemi sono 2, dopo ogni click del button ho dovuto mettere un delay da 200, in modo che il click venga riconosciuto unico e non multiplo, ed il secondo problema non so come risolverlo, ma è legato ai delay... nella mia funzione, ci sono delay di 5 /6 secondi, che si susseguono con i vari comandi, quindi il conteggio complessivo dei delay è di 15/20 secondi... in questi 15/20 secondi il click del pulsante non viene letto, e quindi la funzione riparte, perchè la variabile è ancora a true... grazie... 
|
|
|
|
|
42
|
Forum 2005-2010 (read only) / Italiano / Gestione button con arduino mega 2560
|
on: November 12, 2010, 10:39:17 am
|
Salve, ho riscontrato un piccolo problema con arduino, relativo alla lettura dei pin... vi spiego cosa dovrei fare: ho una variabile (boolean funct = false;) e voglio che quando si clicchi un button, e quindi l'input di quel pin è HIGH, mi alterni funct se è true, a false, e viceversa... metto un pezzo di code, per far capire meglio ciò che devo fare: const int IN_PIN = 5; const int V_LED = 8; const int G_LED = 11; const int R_LED = 13; int btstate = 0; boolean funct = false;
void setup() { pinMode(IN_PIN, INPUT); pinMode(V_LED, OUTPUT); pinMode(G_LED, OUTPUT); pinMode(R_LED, OUTPUT); Serial.begin(9600); }
void loop() { digitalWrite(R_LED, LOW); digitalWrite(G_LED, LOW); digitalWrite(V_LED, LOW); if (funct == true) { // mia funzione, nella quale ci sono anche dei delay }
btstate = digitalRead(IN_PIN); if (btstate == HIGH) {
if (funct == false) { funct = true; } else { funct = false; } } }
però, quando clicco il button, mi cambia da false a true, ed esegue la funzione, ma non riesco più a stopparla... premetto, che il pulsante è collegato tra il pin 5v ed il pin 5, e tra il pin 5 ed il gnd, c'è una resistenza da 10k (ho visto questo sul playground). grazie
|
|
|
|
|