Arduino Uno: chi ci gioca? - BaroneRosso.it - Forum Modellismo

Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 15 maggio 17, 10:38   #1 (permalink)  Top
User
 
L'avatar di andore
 
Data registr.: 20-04-2009
Residenza: Potenza
Messaggi: 934
Citazione:
Originalmente inviato da aero330 Visualizza messaggio
Dimenticavo...anche un diodo in antiparallelo al motore per evitare sovratensioni negative. Cerca in google e avrai le risposte, non sono a PC adesso
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
andore non è collegato   Rispondi citando
Vecchio 15 maggio 17, 14:23   #2 (permalink)  Top
User
 
L'avatar di andore
 
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);
    }
  }

}
Bisognerebbe dichiarare la i giusto?

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
andore non è collegato   Rispondi citando
Vecchio 15 maggio 17, 16:11   #3 (permalink)  Top
User
 
L'avatar di andycar
 
Data registr.: 20-01-2006
Residenza: Altopascio
Messaggi: 2.370
Immagini: 20
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=
andycar non è collegato   Rispondi citando
Vecchio 15 maggio 17, 16:56   #4 (permalink)  Top
User
 
L'avatar di andore
 
Data registr.: 20-04-2009
Residenza: Potenza
Messaggi: 934
Citazione:
Originalmente inviato da andycar Visualizza messaggio
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);
=========================================
Gentilissimo, immaginavo fosse una cosa del genere

ora provo e vi faccio sapere
__________________
FIUMI DI PENSIERI VAGANO NELLA MIA MENTE IGNORANDO LA PERCEZIONE DELLA REALTA' IMPOSTA
andore non è collegato   Rispondi citando
Vecchio 15 maggio 17, 17:08   #5 (permalink)  Top
User
 
L'avatar di andore
 
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"
Il codice che ho modificato è questo:

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);

}
PS. Il pin 7 non è un digitalWrite?
__________________
FIUMI DI PENSIERI VAGANO NELLA MIA MENTE IGNORANDO LA PERCEZIONE DELLA REALTA' IMPOSTA
andore non è collegato   Rispondi citando
Vecchio 15 maggio 17, 17:13   #6 (permalink)  Top
User
 
L'avatar di ElNonino
 
Data registr.: 06-05-2007
Residenza: Tre Ville (Preore)
Messaggi: 3.605
Invia un messaggio via MSN a ElNonino
Devi dichiarare la variabile speed.
"
int speed;
"
o qualcosa di simile.

__________________
Peace & Love
Fate le cose nel modo più semplice possibile, ma senza semplificare. (A. Einstein)
ElNonino non è collegato   Rispondi citando
Vecchio 15 maggio 17, 17:15   #7 (permalink)  Top
User
 
L'avatar di andycar
 
Data registr.: 20-01-2006
Residenza: Altopascio
Messaggi: 2.370
Immagini: 20
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=
andycar non è collegato   Rispondi citando
Vecchio 15 maggio 17, 17:17   #8 (permalink)  Top
User
 
L'avatar di andore
 
Data registr.: 20-04-2009
Residenza: Potenza
Messaggi: 934
Citazione:
Originalmente inviato da andycar Visualizza messaggio
Non hai dichiarato la variabile: speed

Inserisci:

int speed = 0;

Prima del

void setup() {
Infatti me ne sono accorto e la stavo dichiarando
__________________
FIUMI DI PENSIERI VAGANO NELLA MIA MENTE IGNORANDO LA PERCEZIONE DELLA REALTA' IMPOSTA
andore non è collegato   Rispondi citando
Rispondi

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Commento
arduino uno e ..... FLYTS Circuiti Elettronici 3 23 settembre 14 14:50



Tutti gli orari sono GMT +2. Adesso sono le 12:04.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002