Hallo allerseits,
ich habe bei einigen Sensoren bis zu 15m entfernung zu überbrücken. Reicht da ein 0,75. Kabelquerschnitt?
Hallo allerseits,
ich habe bei einigen Sensoren bis zu 15m entfernung zu überbrücken. Reicht da ein 0,75. Kabelquerschnitt?
Am Querschnitt liegt's nicht, aber Vorsicht: Einstreuungen sind Dein Feind.
okay ich frag den mal ganz dumm was sind einstreuungen ???
Langes Kabel = Antenne
Da kann dann einiges los sein auf der Strippe bei den Längen. Also auf gute Abschirmung achten.
hi,
netzwerkkabel haben sich da gut bewährt.
gruß stefan
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
(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
ü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