Pages: 1 2 [3]   Go Down
Author Topic: pilotare relè mediante uln2803  (Read 4246 times)
0 Members and 1 Guest are viewing this topic.
Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7210
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sono giusti.
Pubblica lo sketch. L'errore potrebbe essere lì.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Code:
#include <OneWire.h>
#include <DallasTemperature.h>

int LED=13;                //Pin7 = LED
int setPoint=20;                 //setpoint
int rele_1 = 7;              //uscita relè 1 sul pin 7 di arduino
 
// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 2
 
// Setup a oneWire instance to communicate with any OneWire devices
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
 
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
 
void setup(void)
{
  // start serial port
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");

  // Start up the library
  sensors.begin();
}
 
 
void loop(void)
{
  if (sensors.getTempCByIndex(0) >= setPoint)                        //temperatura maggiore o uguale a 20 led acceso
  {
    digitalWrite (LED, LOW);        //led spento
    digitalWrite(rele_1, LOW);       // relè spento
  }
  else                                                              //temperatura minore o uguale a 20 led spento
  {
    digitalWrite (LED, HIGH);      //led acceso
    digitalWrite(rele_1, HIGH);       // relè acceso
  }
  
 
  // call sensors.requestTemperatures() to issue a global temperature
  // request to all devices on the bus
  Serial.print(" Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperatures
  Serial.println("DONE");

  Serial.print("Temperature for Device 1 is: ");
  Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"?
    // You can have more than one IC on the same bus.
    // 0 refers to the first IC on the wire
   delay (3000);            //aspetta 3secondi
  
}
« Last Edit: April 08, 2013, 03:33:30 pm by UweFederer » Logged

Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ma esiste qualcosa di più piccolo per soli 3 relè?

up!
Logged


Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7210
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il primo sensors.getTempCByIndex(0) non credo funzioni senza il request che fai dopo.
Poi l'IF fa un confronto tra un float e un int. Forse fa il cast in automatico, forse no.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il primo sensors.getTempCByIndex(0) non credo funzioni senza il request che fai dopo.
Poi l'IF fa un confronto tra un float e un int. Forse fa il cast in automatico, forse no.

paolo come correggeresti lo sketch?
ho rismontato e rimontato tutto il circuito escludendo quindi problemi di natura hardware.
tieni presente che la logica "gira" nel senso che monitorando il tutto con il serialmonitor, quando la temperatura è inferiore a quella di soglia il led si accende e l'uln mi eroga i 12V ai capi della bobina viceversa quando la temperatura è superiore il led si spegne ed ai capi della bobina ho 0V.
Ho fatto caso al fatto che la lucina del led è molto flebile nonostante la resistenza sottodimensionata e questo potrebbe significare in qualche modo che non ho un uscita "vera" cioè tale da alimentare correttamente il led e quindi anche darmi i circa 45mA necessari all'eccitazione della bobina.
ma queste sono solo considerazioni di un nubbio che ormai le ha già provate tutte ed inizia a dubitare di tutto...
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7210
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Azz!  smiley-eek
Hai dimenticato il pinmode.  smiley-mr-green

Nel setup()
pinmode(LED, OUTPUT);
pinmode(rele_1, OUTPUT);
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, con i pinMode funziona tutto!!
grazie a tutti quelli che sono intervenuti e che mi hanno aiutato con un particolare ringraziamento a PaoloP che ha scoperto l'inghippo!
abbiate pazienza ma non accendevo un arduino da più di un anno ed il fatto che rispondesse alla logica mi aveva fatto escludere problematiche di natura software...

vado a collegare il termostato!!! a presto!!
Logged

Pages: 1 2 [3]   Go Up
Jump to: