15 maggio 17, 00:21 | #22 (permalink) Top | |
User Data registr.: 03-09-2012 Residenza: Gubbio-Ravenna
Messaggi: 1.771
| Citazione:
Per il motore in DC non dovresti aver problemi a pilotarlo: in rete se cerchi trovi SICURAMENTE come fare e come collegarlo. Ti basta scegliere uno dei pin rimasti liberi, dichiararlo come uscita e accenderlo/spegnerlo se vuoi un controllo ON/OFF con "digitalwrite" oppure con controllo PWM (da 0 a max con valori ntermedi) con la funzione "analogwrite". Circuitalmente parlando basta un resistore tra il pin che hai scelto e la base del transistor (il valore non ricordo ma almeno di qualche Kohm), l'emettitore a massa e il collettore a uno dei due fili del motore, l'altro filo a Vcc. Occhio che i 5v forniti dall'arduino mediante cavo usb potrebbero non bastare per il motore in DC in quanto hanno la carattetristica di assorbire molta corrente per lo spunto inziiale per cui potresti vedere l'arduino resettarsi all'avvio del motore stesso. Ti consiglio di caricare il firmware e poi alimentare la scheda con un'altra fonte di energia a 5V
__________________ Divertirsi insieme e con poco? Prova il combat! Curtman Squadron Combat Sito Web: https://sites.google.com/site/curtmansquadroncombat/ Ultima modifica di aero330 : 15 maggio 17 alle ore 00:30 | |
15 maggio 17, 00:33 | #23 (permalink) Top |
User Data registr.: 03-09-2012 Residenza: Gubbio-Ravenna
Messaggi: 1.771
|
Dimenticavo...anche un diodo in antiparallelo al motore per evitare sovratensioni negative. Cerca in google e avrai le risposte, non sono a PC adesso
__________________ Divertirsi insieme e con poco? Prova il combat! Curtman Squadron Combat Sito Web: https://sites.google.com/site/curtmansquadroncombat/ |
15 maggio 17, 11:38 | #24 (permalink) Top |
User Data registr.: 20-04-2009 Residenza: Potenza
Messaggi: 934
| Si infatti, ho trovato molti circuiti ma in sostanza é lo stesso, il modulo di energia aggiuntiva c'è l'ho e quindi, mi tocca solo mettermi sotto oggi pomeriggio
__________________ FIUMI DI PENSIERI VAGANO NELLA MIA MENTE IGNORANDO LA PERCEZIONE DELLA REALTA' IMPOSTA |
15 maggio 17, 15:23 | #25 (permalink) Top |
User Data registr.: 20-04-2009 Residenza: Potenza
Messaggi: 934
|
Collegamenti completati e schema finalmente finito Il problema ora sorge nel codice che, dal solo motore dc con monitor virtuale, invio 255 e parte, a 0 si ferma come dovrebbe essere, per cui qui tutto ok. Ma visto che ora nel codice di certo non posso fare copia/incolla in questo modo: Codice: #include <Wire.h> #include <DHT.h> #include <RTClib.h> #include <LiquidCrystal.h> #define DHTPIN 8 // 8 è il pin di Arduino a cui collego il sensore di temperatura #define DHTTYPE DHT11 // dht11 è il tipo di sensore che uso DHT dht(DHTPIN, DHTTYPE); LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // connessione display (pin) char buffer1[20]; char buffer2[20]; RTC_DS1307 RTC; const int setpin = 6; boolean statepin = 0; int t; int h; int motorPin = 7; void setup() { lcd.begin(16, 2); // imposto il tipo di display (colonne, righe) lcd.setCursor(0,0); pinMode (6, INPUT); digitalWrite (6, HIGH); Wire.begin(); RTC.begin(); if (! RTC.isrunning()) { RTC.adjust(DateTime(__DATE__, __TIME__)); pinMode(motorPin, OUTPUT); Serial.begin(9600); while (! Serial); Serial.println("Speed 0 to 255"); Serial.println("But the advice 50 to 255. Because the minimum voltage required to start the motor is 50."); } } void loop() { t = dht.readTemperature(); h = dht.readHumidity(); // posiziono il cursore alla colonna 12 e riga 0 lcd.print("Temperatura"); lcd.setCursor(0,1); lcd.print("Umidita'"); lcd.setCursor(15,0); lcd.print("C"); lcd.setCursor(15,1); lcd.print("%"); lcd.setCursor(12, 0); lcd.print(t); lcd.setCursor(12, 1); lcd.print(h); delay(5000); lcd.clear(); //pulisce tutto lo schermo e cursore in alto a sinistra (0,0) statepin = digitalRead (setpin); if (statepin == LOW) { RTC.adjust(DateTime(__DATE__, __TIME__)); } DateTime now = RTC.now(); sprintf(buffer1, "%02d:%02d:%02d", now.hour(), now.minute(), now.second()); lcd.setCursor(0,0); lcd.print( buffer1 ); sprintf(buffer2, "%02d/%02d/%d", now.day(), now.month(), now.year()); lcd.setCursor(0,1); lcd.print( buffer2 ); delay(5000); lcd.clear(); //Pulisco lo schermo e ricomincio da capo if (Serial.available()) { int speed = Serial.parseInt(); if (speed >= 0 && speed <= 255) { analogWrite(motorPin, speed); } } } per cui, ignorantemente parlando se i=30C° i>30C° (motorPin, LOW) if i<30C° (motorPin; speed) Una cosa del genere giusto?
__________________ FIUMI DI PENSIERI VAGANO NELLA MIA MENTE IGNORANDO LA PERCEZIONE DELLA REALTA' IMPOSTA |
15 maggio 17, 17:11 | #26 (permalink) Top |
User |
Al posto di questo.... ======================================= if (Serial.available()) { int speed = Serial.parseInt(); if (speed >= 0 && speed <= 255) { analogWrite(motorPin, speed); } } ======================================== metti... ========================================= if (t > 30) { speed = 255 ; } else { speed = 0 ; } analogWrite(motorPin, speed); =========================================
__________________ Io??? Io volo in giardino!!! (Cioè... ci volavo da giovane.) http://www.youtube.com/results?searc...ype=&aq=-1&oq= |
15 maggio 17, 17:56 | #27 (permalink) Top | |
User Data registr.: 20-04-2009 Residenza: Potenza
Messaggi: 934
| Citazione:
ora provo e vi faccio sapere
__________________ FIUMI DI PENSIERI VAGANO NELLA MIA MENTE IGNORANDO LA PERCEZIONE DELLA REALTA' IMPOSTA | |
15 maggio 17, 18:08 | #28 (permalink) Top |
User Data registr.: 20-04-2009 Residenza: Potenza
Messaggi: 934
|
No, purtroppo mi restituise questo errore Codice: Arduino:1.8.2 (Windows 10), Scheda:"Arduino/Genuino Uno" C:\Users\USER\Desktop\Progetti Arduino\Clima_serra\Clima_serra.ino: In function 'void loop()': Clima_serra:85: error: 'speed' was not declared in this scope speed = 255 ; ^ Clima_serra:89: error: 'speed' was not declared in this scope speed = 0 ; ^ Clima_serra:91: error: 'speed' was not declared in this scope analogWrite(motorPin, speed); ^ exit status 1 'speed' was not declared in this scope Questo report potrebbe essere più ricco di informazioni abilitando l'opzione "Mostra un output dettagliato durante la compilazione" in "File -> Impostazioni" Codice: //Con l'aiuto di aero330 ed ElNonino, utenti di www.baronerosso.it #include <Wire.h> #include <DHT.h> #include <RTClib.h> #include <LiquidCrystal.h> #define DHTPIN 8 // 8 è il pin di Arduino a cui collego il sensore di temperatura #define DHTTYPE DHT11 // dht11 è il tipo di sensore che uso DHT dht(DHTPIN, DHTTYPE); LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // connessione display (pin) char buffer1[20]; char buffer2[20]; RTC_DS1307 RTC; const int setpin = 6; boolean statepin = 0; int t; int h; int motorPin = 7; void setup() { lcd.begin(16, 2); // imposto il tipo di display (colonne, righe) lcd.setCursor(0,0); pinMode (6, INPUT); digitalWrite (6, HIGH); Wire.begin(); RTC.begin(); if (! RTC.isrunning()) { RTC.adjust(DateTime(__DATE__, __TIME__)); } { pinMode(motorPin, OUTPUT); } } void loop() { t = dht.readTemperature(); h = dht.readHumidity(); // posiziono il cursore alla colonna 12 e riga 0 lcd.print("Temperatura"); lcd.setCursor(0,1); lcd.print("Umidita'"); lcd.setCursor(15,0); lcd.print("C"); lcd.setCursor(15,1); lcd.print("%"); lcd.setCursor(12, 0); lcd.print(t); lcd.setCursor(12, 1); lcd.print(h); delay(5000); lcd.clear(); //pulisce tutto lo schermo e cursore in alto a sinistra (0,0) statepin = digitalRead (setpin); if (statepin == LOW) { RTC.adjust(DateTime(__DATE__, __TIME__)); } DateTime now = RTC.now(); sprintf(buffer1, "%02d:%02d:%02d", now.hour(), now.minute(), now.second()); lcd.setCursor(0,0); lcd.print( buffer1 ); sprintf(buffer2, "%02d/%02d/%d", now.day(), now.month(), now.year()); lcd.setCursor(0,1); lcd.print( buffer2 ); delay(5000); lcd.clear(); //Pulisco lo schermo e ricomincio da capo if (t > 30) { speed = 255 ; } else { speed = 0 ; } analogWrite(motorPin, speed); }
__________________ FIUMI DI PENSIERI VAGANO NELLA MIA MENTE IGNORANDO LA PERCEZIONE DELLA REALTA' IMPOSTA |
15 maggio 17, 18:15 | #30 (permalink) Top |
User |
Non hai dichiarato la variabile: speed Inserisci: int speed = 0; Prima del void setup() {
__________________ Io??? Io volo in giardino!!! (Cioè... ci volavo da giovane.) http://www.youtube.com/results?searc...ype=&aq=-1&oq= |
Bookmarks |
| |
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Commenti | Ultimo Commento |
arduino uno e ..... | FLYTS | Circuiti Elettronici | 3 | 23 settembre 14 15:50 |