Pages: [1]   Go Down
Author Topic: 1-Wire DS2408  (Read 1620 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

ich wollte nur kurz fragen, ob vielleicht jemand nen Beispiel Code für nen
DS2408 hat, mit dem ich nen Port ein bzw ausschalten kann.

Am besten wäre, wenn nur die OneWire.h benutzt würde.

Vielen DANK

Goofy
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 258
Posts: 21494
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Funktioniert mein Google besser als Deiner?  smiley-wink smiley-wink smiley-wink
https://github.com/queezythegreat/arduino-ds2408
zum Download links der button mit "ZIP".
Grüße Uwe
« Last Edit: March 11, 2012, 04:55:10 pm by uwefed » Logged

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

Hallo,

das habe ich schon auch gefunden und glaub mir, ich habe fast komplett google durch.
Aber nicht alles was so angeboten wird funktioniert auch so smiley-sad

Und vor allem nicht "Am besten wäre, wenn nur die OneWire.h benutzt würde."

Deswegen dachte ich dass ich hier mal freundlich frage  smiley-wink

Gruß Goofy
Logged

Germany
Offline Offline
Edison Member
*
Karma: 47
Posts: 2315
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Dass du die Google-Suche schon benutzt hast, ging nicht aus deiner Fragestellung hervor. Das sollte eigentlich eine Selbstverständlichkeit sein, ist es aber leider nicht immer...
Wenn du alle Anschlussprobleme ausschließen kannst, wie falsche Verdrahtung bzw. Beschaltung, an Pullupwiderstände für die I2C gedacht hast usw., ist die Zuhilfenahme einer Bibliothek trotzdem nicht verkehrt. Da diese im Klartext vorliegen, kann man ebenso gut die eingebauten Funktionen analysieren und in leicht abgewandelter Form in den eigenen Sketchen verwenden.
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 258
Posts: 21494
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

das habe ich schon auch gefunden und glaub mir, ich habe fast komplett google durch.
Aber nicht alles was so angeboten wird funktioniert auch so smiley-sad

Und vor allem nicht "Am besten wäre, wenn nur die OneWire.h benutzt würde."

Deswegen dachte ich dass ich hier mal freundlich frage  smiley-wink

Gruß Goofy

Daß einige Fehler in Bibiotheken und Beispielen sind muß ich Dir recht geben. Aus Ermangelung des DS2408 kann ich keine Kontrollen machen. Ich kann Dir nur Beispiele aufzeigen die ich finde.

Was funktioniert genau nicht?

Grüße Uwe
Logged

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

Ja klar, ich bin ja über jede Hilfe Dankbar und dass ich schon alles durchsucht habe, hätte ich
ja auch schreiben können  smiley-roll-sweat

zu meinem Problem, ich möchte meine IOs mit dem DS2408 erweitern. Habe die Platine schon
gemacht alles verkabelt und ich finde den Chip auch, will heißen ich bekomme ne ID zurück.

Prinzipiell habe ich ja auch DS18B20 dran hängen und das funktioniert auch super.

Hier mal ein Beispielcode für nen DS18B20 der auch mit nem Sensor gut funktioniert und am selben Bus hängt der
DS2408 ... als Verkabelungstechnisch muss alles passen smiley

 
Quote
#include <OneWire.h>
OneWire ds(12);  // on pin 12

byte sensor_1[8] = {0x28, 0x42, 0x37, 0x03, 0x03, 0x00, 0x00, 0xBC};
float temperatur;

void setup(void) {
  // start serial port 
  Serial.begin(9600);
}

void loop(void) {
  temperatur = ds18b20(sensor_1);
  Serial.print(temperatur);
  Serial.print(" C\n");
  delay(1000);
}

//Funktionen
///////////////
//  DS18B20  //
///////////////
float ds18b20(byte* address){
  byte i;
  byte data[12];
  int HighByte, LowByte, TReading, SignBit, Tc_100, Whole, Fract;
  float Temperatur;
 
  ds.reset();
  ds.select(address);       //(addr)
  ds.write(0x44,1);         // start conversion, with parasite power on at the end

  ds.reset();
  ds.select(address);   
  ds.write(0xBE);           // Read Scratchpad

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

  LowByte = data[0];
  HighByte = data[1];
  TReading = ( HighByte << 8 ) + LowByte;
  Temperatur = (float)TReading / 16;
 
  return Temperatur;
}

Jetzt wäre nur die Frage was ich an den DS2408 schicken muss, damit ich nen Port auf HIGH bzw LOW setzte.

Das Datenblatt wäre hier http://datasheets.maxim-ic.com/en/ds/DS2408.pdf


Vielen DANK

Gruß Goofy
Logged

Pages: [1]   Go Up
Jump to: