Ich baue einen Datenlogger, der einige Temperaturen und Schaltzustände aufzeichnen soll. Derzeit auf Basis Butterfly = ATmega169, später ATmega32. Die Sensoren sind typ. wenige cm bis max. 5m Kabellänge vom Logger entfernt. Als zusätzlichen Sensor möchte ich jetzt einen SHT11 Temepratur- und Feuchtesensor anschließen. Das funktioniert auch soweit, wenn der SHT11 direkt neben dem Butterfly liegt, bei 3m Entfernung kommt nichts mehr durch. Nach viel Sucherei hab ich im Datenblatt gelesen, dass der SHT11 nur max. 10cm Kabellänge abkann. Also hab ich mir gedacht, einen ATtiny13 (liegen einige in der Bastelkiste) auf der einen Seite direkt mit SHT11 zu verbinden und auf der anderen Seite übers Kabel mit dem zentralen Logger zu sprechen. Meine Frage ist nun, welches Protokoll nehm ich am besten für die Kommunikation zwischen den AVRs. Zu LIN hab ich bereits einiges gelesen und auch Atmel bietet einige AppNotes; von I2C hab ich keine Ahnung. Weitere Punkte: + Autokalibration zu Beginn jeder Übertragung (Ausgleich der Temperaturschwankungen, ca. -20°C .. +50°C) + nur ein Pin (Halbduplex) - aufwändiger Code zur Kalibrierung (nicht viel Platz im tiny13) Geschwindigkeit ist eher Nebensache. Die Abfragen erfolgen nur ca. alle 10 Minuten. Da ist eine Übertragung mit 1200 Baud noch schnell. Vorschläge, Anmerkungen? RE
Mach ein LIN-Bus. Versorge den Bus selber über 10k mit +12V (kannst auch 5V nehmen) und ziehe mittels Transistor den Bus gegen Masse. Der TxD vom AVR kannst dann direkt ohne großartigem Protokollaufbau mit "Print" die Werte übertragen. Solltest Du noch Checksumme wünschen kannst Du das bei Bascom mit crc8(x,y) errechnen lassen und mitsenden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.