
|
![]() | #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 ![]() |
![]() | ![]() |
Bookmarks |
| |
![]() | ||||
Discussione | Autore discussione | Forum | Commenti | Ultimo Commento |
arduino uno e ..... | FLYTS | Circuiti Elettronici | 3 | 23 settembre 14 14:50 |