0
Offline
Full Member
Karma: 2
Posts: 109
Arduino rocks
|
 |
« on: January 27, 2011, 08:08:15 am » |
Hallo neues Forum!
Ich möchte meine Frage kurz fassen. Zu einem <Hersteller erstmal egal> 12 Bit ADC 8CH mit I²C Chip. Heisst hier 8 Kanal das ich 8 einzelne Bspw. Temperatursensoren einzeln anschließen und per I²C auslesen kann? Wenn ja, hat der Chip 8 Adressen die ich mit I²C ansprechen kann? Die 2 te Frage ist, bringt 12 Bit eigendlich was beim Arduino? Der I²C kann doch nur 9 Bit auslösen oder?
Danke für eure Antwort und Hilfe!
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Edison Member
Karma: 8
Posts: 1040
Arduino rocks
|
 |
« Reply #1 on: January 27, 2011, 09:59:40 am » |
PCF8591 4 input analog 8 bit resolucion I2C bus
|
|
|
|
|
Logged
|
|
|
|
|
CH
Offline
God Member
Karma: 19
Posts: 703
Book Writer "Arduino Praxiseinstieg"
|
 |
« Reply #2 on: January 27, 2011, 12:25:58 pm » |
Zu einem <Hersteller erstmal egal> 12 Bit ADC 8CH mit I²C Chip. Beispielsweise der LTC2309 von Linear Technology. http://www.linear.com/pc/productDetail.jsp?navId=H0,C1,C1155,C1001,C1158,P54668Heisst hier 8 Kanal das ich 8 einzelne Bspw. Temperatursensoren einzeln anschließen und per I²C auslesen kann? Genau, der Analog/Digital-Wandler hat 8 analoge Eingänge. Über 8 Adressen können die gemessen Werte abgefragt werden. Wenn ja, hat der Chip 8 Adressen die ich mit I²C ansprechen kann? gemäss Datenblatt: 2-Wire I2C Compatible Serial Interface with Nine Addresses Plus One Global for Synchronization Die 2 te Frage ist, bringt 12 Bit eigendlich was beim Arduino? Der I²C kann doch nur 9 Bit auslösen oder? Der 12-Bit-Wert wird vom Arduino verabeitet, sollte kein Problem sein. Was heisst nur 9 Bit auslösen?
|
|
|
|
|
Logged
|
|
|
|
|
AREA COLOGNE
Offline
God Member
Karma: 12
Posts: 841
I am 1 of 10 who understands binary
|
 |
« Reply #3 on: January 27, 2011, 01:01:35 pm » |
Also ich habe schon zwei Projekte mit einem 12Bit-8Kanal I²C gemacht. Ich habe von MAXIM den MAX127 als Samples bekommen (6stck) der funktioniert perfekt in meine Webthermometer habe ich den sogar drin. Funktioniert einwandfrei und er hat 8 Kanäle womit du dann auf dem Arduino mal 3 I/O mehr hast da du die Ains normal verwnden kannst. Er liest 12 Bit aus die du auch als zwölf Bit bekommst. eskommen 2 Byte an die du dann miteinader auf 12Bit auflösung "schiebst" kann die gerne die Funktion mal mailen long readMAX127(byte chan) { byte control = 0x80 + (chan << 4); byte addr = 0x28;
Wire.beginTransmission(addr); Wire.send(control); // send value Wire.endTransmission();
Wire.requestFrom(addr, (byte)2);
byte b1 = Wire.receive(); byte b2 = Wire.receive() >> 4; long data = (b1 << 4) | (b2 & 0x0F);
return data; }
Zurück kommt ein Wert 0-4096 :-)
|
|
|
|
« Last Edit: January 27, 2011, 01:06:00 pm by volvodani »
|
Logged
|
So ist das Leben: Manchmal bis du das Denkmal, manchmal die Taube!
|
|
|
|
0
Offline
Full Member
Karma: 2
Posts: 109
Arduino rocks
|
 |
« Reply #4 on: January 27, 2011, 01:36:14 pm » |
Es sollte 9 Bit Auflösung heissen @ webmeister. Aber Danke für die Info, auch dir volvo danke, der code wird mir sicher weiterhelfen! Ich bin mir aber gerade nicht mehr sicher was du mit schieben meinst, kannste mir da evtl noch ma auf die sprünge helfen? Einen schönen Abend wünsch ich noch!
|
|
|
|
|
Logged
|
|
|
|
|
AREA COLOGNE
Offline
God Member
Karma: 12
Posts: 841
I am 1 of 10 who understands binary
|
 |
« Reply #5 on: January 27, 2011, 03:10:36 pm » |
Du empfängst 2 bytes byte1 und byte2 in dem "8Bit" in dem 2 Byte sind ja auch 8Bit wobei die letzen 4Bit deines Wertes an den ersten 4 STellen stehen also verscheibt du die ersten 4 Bits um 4 stellen nach "rechts" also in richtung Leat Bit und deine anderen 8 Bit kommen dann vorne dran und dann hast du eine 12 Bit so macht das doe Finktion mal ganz simpel ausgedrückt :-)
byte b1 = Wire.receive(); <== erstes Byte mit den ersten 8Bit byte b2 = Wire.receive() >> 4; <== zweites Byte mit den restelichen 4 Bit an den ersten 4 Sellen mit >> 4 um 4 Positionen nach rechst "geshiftet" long data = (b1 << 4) | (b2 & 0x0F); <== im long das erste byte speichen um 4 nach links verschieben Also position bit12--->bit5 | und dann die fehlenden 4 Bit dazu :-)
|
|
|
|
|
Logged
|
So ist das Leben: Manchmal bis du das Denkmal, manchmal die Taube!
|
|
|
|
0
Offline
Full Member
Karma: 2
Posts: 109
Arduino rocks
|
 |
« Reply #6 on: January 28, 2011, 03:18:59 am » |
Hallo volvodani,
Also der Max127 klingt ja echt klasse, den Code hab ich auch verstanden, hab auch dein altes Projekt gefunden, echt Klasse!
Allerdings finde ich keinen deutschen Händler bei dem ich den Chip kaufen kann...
Hast du evtl ne Bezugsquelle für mich?
|
|
|
|
|
Logged
|
|
|
|
|
AREA COLOGNE
Offline
God Member
Karma: 12
Posts: 841
I am 1 of 10 who understands binary
|
 |
« Reply #7 on: January 28, 2011, 05:02:46 am » |
|
|
|
|
|
Logged
|
So ist das Leben: Manchmal bis du das Denkmal, manchmal die Taube!
|
|
|
|
0
Offline
Full Member
Karma: 2
Posts: 109
Arduino rocks
|
 |
« Reply #8 on: January 28, 2011, 10:43:28 am » |
Schade nur das es den scheinbar nicht im DIP Gehäuse gibt... Aber naja, dann werd ich den halt am Sonntag ma bestellen, Danke dir!
|
|
|
|
|
Logged
|
|
|
|
|
|
|
0
Offline
Full Member
Karma: 2
Posts: 109
Arduino rocks
|
 |
« Reply #10 on: January 28, 2011, 01:44:58 pm » |
Jo die Seite hat mir vorhin schon ein Freund gezeigt, aber danke. Hab mittlerweile aber auch einen im DIP Gehäuse gefunden...aber 20€ is schon ziemlich fett. LTC2309 der ist zwar preiswert, aber leider für mich nicht Lötbar.
|
|
|
|
|
Logged
|
|
|
|
|
Area Stuttgart
Offline
Sr. Member
Karma: 13
Posts: 435
logic enrichments
|
 |
« Reply #11 on: January 28, 2011, 01:55:30 pm » |
Hallo bytzmaster, brauchst du denn wirklich 8 analog In's ? Oder wäre es mit einem weiteren externen Atmega auch getan ? Ist nur so ein Gedankengang von mir. 20 Euronen ... dafür bekommst du 4 Atmega's. die haben genügend Analog In's im Gepäck. 
|
|
|
|
|
Logged
|
Eine Kuh macht muuhh. Viele Kuehe machen Muehe
|
|
|
|
0
Offline
Full Member
Karma: 2
Posts: 109
Arduino rocks
|
 |
« Reply #12 on: January 28, 2011, 02:01:48 pm » |
Nun mir gehts ja um die 12 Bit und das ich mit möglichst wenig Chips viele 12 Bit Eingänge habe. Dazu kommt das der MAX127 relativ Stromsparend ist, im Gegensatz zu meherenen Mega´s. Aber danke für den Tipp, den werd ich mir ma offen halten!
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
BZ (I)
Offline
Brattain Member
Karma: 172
Posts: 16143
+39 349 2158303
|
 |
« Reply #13 on: January 28, 2011, 05:25:27 pm » |
Ist wahrscheinlich kein nützlicher Vorschlag: es ist auch möglich einen 1 Kanal-ADC mit einem Analogmultiplexer zu verbinden. Dadurch hast Du mehr Eingänge aber einen geringere max Abtastfrequenz. Grüße Uwe
|
|
|
|
|
Logged
|
|
|
|
|
|