Neuling braucht hilfe von der Pike auf

Moin allerseits,

da bin ich wieder. Meine Relay Karte, das Mega 2560 und das Wiznet sind schon da.
Also denke ich das ich doch schonmal die ersten geh versuche wagen kann.

Die arduino Software habe ich runtergeladen aber wo komme ich zum Virtuellen steckbrett ????

Die arduino Software habe ich runtergeladen aber wo komme ich zum Virtuellen steckbrett ????

Was verstehst Du unter "Virtuelles Steckbrett"? Wozu willst Du das einsetzen?

ein freund hatte mir das mal gezeigt in diesem virtuellem Steckbrett konnte man die komplette schaltung quasi fertig aufbauen und das ganze dan virtuell testen um nachzuvolziehen ob es theoretisch "wenn in der praxis gleich aufgebaut" auch funktioniert.

Fritzing heist das virtuelle steckbrett

Holzjunkie:
Fritzing heist das virtuelle steckbrett

Kann Fritzing Schaltungsimulation?

jupp genau die meine ich

hi,

Kann Fritzing Schaltungsimulation?

ist mir auch neu. muß ich doch mal ausprobieren...

gruß stefan

So liebe leute nun habe ich mir mal das Blink beispiel angesehen und bekomme sogar ein sos hin.

hi,

So liebe leute nun habe ich mir mal das Blink beispiel angesehen und bekomme sogar ein sos hin.

was willst Du dann hier im forum? Du bekommst doch hilfe vom seenotdienst...

gruß stefan

was willst Du dann hier im forum?

.. ausser du zeigst uns, wie man in fritzing eine SOS - blinkende LED darstellen kann :wink:

(Sorry, lass dich nicht von Eisebären oder anderen abschrecken)

Ich erinnere mich: Die ersten Erfolgserlebnisse sind die schönsten. Viel Spaß weiterhin.

( Nach Blink kommt BlinkWithoutDelay )

hi,

Sorry, lass dich nicht von Eisebären oder anderen abschrecken

na ich hoffe doch, daß holzjunkie meine meldung nicht falsch verstanden hat :blush:

übrigens: ein holzjunkie bin ich auch, gibt nichts schöneres. habe mir vor kurzem meine wohnzimmermöbel aus stabverleimter buche und plexiglas gebaut.

gruß stefan

Hallo allerseits,

ich bin mal gespannt wann die dgzrs in der Nordheide einläuft und hoffe das ich bis dahin ein Haus boot und kein U-hausboot habe 8)

Mal sehen heute habe ich viel zeil daher werde ich mich heute mal mit der Temperaturerfassung mit den DS18B20 widmen.
I so nun habe ich folgenden Quellcode gefunden:
#include <OneWire.h>

// OneWire DS18S20, DS18B20, DS1822 Temperature Example
//
// OneWire Arduino Library, connecting 1-wire devices (DS18S20, etc) to Teensy
//
// The DallasTemperature library can do all this work for you!
// MilesBurton.com

OneWire ds(10); // on pin 10

void setup(void) {
Serial.begin(9600);
}

void loop(void) {
byte i;
byte present = 0;
byte type_s;
byte data[12];
byte addr[8];
float celsius, fahrenheit;

if ( !ds.search(addr)) {
Serial.println("No more addresses.");
Serial.println();
ds.reset_search();
delay(250);
return;
}

Serial.print("ROM =");
for( i = 0; i < 8; i++) {
Serial.write(' ');
Serial.print(addr*, HEX);*

  • }*

  • if (OneWire::crc8(addr, 7) != addr[7]) {*

  • Serial.println("CRC is not valid!");*

  • return;*

  • }*

  • Serial.println();*

  • // the first ROM byte indicates which chip*

  • switch (addr[0]) {*

  • case 0x10:*

  • Serial.println(" Chip = DS18S20"); // or old DS1820*

  • type_s = 1;*

  • break;*

  • case 0x28:*

  • Serial.println(" Chip = DS18B20");*

  • type_s = 0;*

  • break;*

  • case 0x22:*

  • Serial.println(" Chip = DS1822");*

  • type_s = 0;*

  • break;*

  • default:*

  • Serial.println("Device is not a DS18x20 family device.");*

  • return;*

  • }*

  • ds.reset();*

  • ds.select(addr);*

  • ds.write(0x44,1); // start conversion, with parasite power on at the end*

  • delay(1000); // maybe 750ms is enough, maybe not*

  • // we might do a ds.depower() here, but the reset will take care of it.*

  • present = ds.reset();*

  • ds.select(addr); *

  • ds.write(0xBE); // Read Scratchpad*

  • Serial.print(" Data = ");*

  • Serial.print(present,HEX);*

  • Serial.print(" ");*

  • for ( i = 0; i < 9; i++) { // we need 9 bytes*
    _ data = ds.read();_
    _ Serial.print(data*, HEX);
    Serial.print(" ");
    }
    Serial.print(" CRC=");
    Serial.print(OneWire::crc8(data, 8), HEX);
    Serial.println();
    // convert the data to actual temperature*
    * unsigned int raw = (data[1] << 8) | data[0];_
    if (type_s) {
    _ raw = raw << 3; // 9 bit resolution default*
    * if (data[7] == 0x10) {
    // count remain gives full 12 bit resolution*
    * raw = (raw & 0xFFF0) + 12 - data[6];
    }
    } else {
    byte cfg = (data[4] & 0x60);
    if (cfg == 0x00) raw = raw << 3; // 9 bit resolution, 93.75 ms*
    * else if (cfg == 0x20) raw = raw << 2; // 10 bit res, 187.5 ms*
    * else if (cfg == 0x40) raw = raw << 1; // 11 bit res, 375 ms*
    * // default is 12 bit resolution, 750 ms conversion time*
    * }
    celsius = (float)raw / 16.0;
    fahrenheit = celsius * 1.8 + 32.0;
    Serial.print(" Temperature = ");
    Serial.print(celsius);
    Serial.print(" Celsius, ");
    Serial.print(fahrenheit);
    Serial.println(" Fahrenheit");
    }*
    Wenn ich den aber aufspiele und die Sensoren entsprechend der Website von der der Code ist anschließe (Links masse, mitte Data, rechts +5v) dann bekomme ich nur no more adresses ausgelesen
    Mfg
    der Junkie_

(Links masse, mitte Data, rechts +5v)

Pull-up-Widerstand fehlt.

hast erecht habe ich vergessen zu erwähnen ist aber drin.
den fehler habe ich auch schon gefunden hab zwar + auf den pull up gegeben aber nicht auf den rechten :~ :~

Moin allerseits,

nun habe ich doch mal was hingebastelt aber irgendwie will das nicht so richtig würde mich sehr freuen wenn mir einer Helfen kann.
Hier mal der Quellcode:

#include <OneWire.h>

// OneWire DS18B20 Temperature Example
//
int Relay = (22);
OneWire  ds(23);  // on pin 10

void setup(void) {
  pinMode(Relay, OUTPUT); 
   Serial.begin(9600);
}

void loop(void) {
   byte i;
   byte present = 0;
   byte type_s;
   byte data[12];
   byte addr[8];
   float celsius, fahrenheit;

   if ( !ds.search(addr)) {
     
     delay(250);
     return;
   }

   type_s = 0; // konstant festgelegt auf Sensor mit Chip = DS18B20
   // erkennung vom sensor
   switch (addr[7]) {
     case 0xC8:
       Serial.println("  Kessel ");
       break;
     case 0xE4:
       Serial.println("  Vorlauf ");
       break;
     case 0xD9:
       Serial.println("  Ruecklauf ");
       break;
     default:
       Serial.println("   Unbekannter Sensor.");
       return;
   }

   ds.reset();
   ds.select(addr);
   ds.write(0x44,1);         // start conversion, with parasite power on 


   delay(1000);     // maybe 750ms is enough, maybe not
   // we might do a ds.depower() here, but the reset will take care of it.

   present = ds.reset();
   ds.select(addr);
   ds.write(0xBE);         // Read Scratchpad

   
   
   
   for ( i = 0; i < 9; i++) {           // we need 9 bytes
     data[i] = ds.read();
     
     Serial.print(" ");
   }
   

   // convert the data to actual temperature

   unsigned int raw = (data[1] << 8) | data[0];
   if (type_s) {
     raw = raw << 3; // 9 bit resolution default
     if (data[7] == 0x10) {
       // count remain gives full 12 bit resolution
       raw = (raw & 0xFFF0) + 12 - data[6];
     }
   } else {
     byte cfg = (data[4] & 0x60);
     if (cfg == 0x00) raw = raw << 3;  // 9 bit resolution, 93.75 ms
     else if (cfg == 0x20) raw = raw << 2; // 10 bit res, 187.5 ms
     else if (cfg == 0x40) raw = raw << 1; // 11 bit res, 375 ms
     // default is 12 bit resolution, 750 ms conversion time
   }
   celsius = (float)raw / 16.0;
   
   Serial.print("  Temperatur = ");
   Serial.print(celsius);
   Serial.print(" Celsius, ");

   if (0xC8 >=25) //abfrage: ist Temperatur über 25°C (funktioniert nicht)
   {
     digitalWrite(Relay, HIGH); //wenn ja Relay an
   }
   else
   {
     digitalWrite(Relay, LOW);   // wenn nein aus
  
   }
   
}

die if funktion funktioniert nicht richtig wenn der Sensor unter 25°C geht schaltet das Relay nicht ab

viele Grüße

Ulf Baumann

Hall Ulf,
ich persönlich mag diese Programmierung mit den ganzen "Hieroglyphen" wie 0xC8 und so gar nicht weil man das nicht
vernünftig lesen kann.
Es gibt für die 18B20 eine DallasTemperature.h, dann kann man mit sensors.getTempC die Temperatur direkt in °C auslesen
und diese auch abfragen.
Das ist meiner Meinung nach viel einfacher und auch besser zu verstehen.
gruß

Hallo Maverick,

leider bin ich eher noch der Dau in sachen Programmierung könntest du mir weiterhelfen wie das ganze dann aussehen muß ??? damit ich auch die zuordnung sicherstellen kann ???

Viele Grüße

Ulf

Hallo Ulf,
wenn du willst kann ich dir eine komplette Programmierung schicken. Diese kann folgendes: Steuerung der Gasheizung, einer Solaranlage sowie eines wasserführenden Kachelofens.
Die Programmierung ist sehr ausführlich auskommentiert, da kannst du sicherlich vieles verwenden.
Schick mir mal deine Mail Adresse
Gruß
Bernward

Mein lieber mann das ist mal dick aufgetragen!!!!

Hallo allerseits ich habe mich leider länge nicht melden können da ich seit April einen neuen Arbeitgeber habe wo ich jetzt erstmal sehr stark eingebunden war.

Nun legt sich aber der anfangsstreß und ich kann mich wieder den wesentlichem widmen.

Danke nochmal für eure bisherige unterstützung ich hoffe ich kann auch in zukunft auf euch zählen!!!

MfG

der Junkie