Das schöne an der Himbeere ist ja, das dort einige digitale I/Os rausgeführt werden. Per Software lassen sich diese s.g. GPIO’s einfach ansprechen. Ich hab die hier mal aufgelistet:
Pin | Funktion | Pin | Funktion |
---|---|---|---|
1. | 3,3V | 2. | 5,0V |
3. | GPIO__0 / SDA | 4. | n.c. |
5. | GPIO__1 / SCL | 6. | GND |
7. | GPIO__4 / GPCLK0 | 8. | GPIO_14 / TxD |
9. | n.c. | 10. | GPIO_15 / RxD |
11. | GPIO_17 | 12. | GPIO_18 / PCM_CLK |
13. | GPIO_21 / PCM_DOUT | 14. | n.c. |
15. | GPIO_22 | 16. | GPIO_23 |
17. | n.c. | 18. | GPIO_24 |
19. | n.c. | 20. | n.c. |
21. | GPIO_10 / MOSI | 22. | GPIO_25 |
23. | GPIO__9 / MISO | 24. | GPIO__8 / CE0 |
25. | GPIO_11 / SCLK | 26. | GPIO__7 / CE1 |
Als ersten Wurf nehme ich mal einen LM75BP davon hab ich ein paar hier.
- Pin 1 : SDA
- Pin 2 : SCL
- Pin 3 : Alarm Ausgang, den lasse ich frei
- Pin 4 : GND
- Pin 5,6,7 : A0..2 die Adressleitungen kommen alle auf GND
- Pin 8 : VCC (+5,0V)
Ein Adapter ist schnell zusammen gelötet, also ran damit und los geht’s. Die Hardware ist fertig, jetzt brauchen wir noch etwas Software.
Erstmal die Treiber für den Broadcom Chip und I2C Werkzeuge:
Jetzt noch die i2c Kommandos für den normalen Benutzer freischalten
Dann können wir ja mal gucken ob das hinhaut:
00: — — — — — — — — — — — — —
10: — — — — — — — — — — — — — — — —
20: — — — — — — — — — — — — — — — —
30: — — — — — — — — — — — — — — — —
40: — — — — — — — — — — — — — — — —
50: — — — — — — — — — — — — — — — —
60: — — — — — — — — — — — — — — — —
70: — — — — — — — —
Hmmm, natürlich nichts. Vielleicht auf dem zweiten Bus?
00: — — — — — — — — — — — — —
10: — — — — — — — — — — — — — — — —
20: — — — — — — — — — — — — — — — —
30: — — — — — — — — — — — — — — — —
40: — — — — — — — — 48 — — — — — — —
50: — — — — — — — — — — — — — — — —
60: — — — — — — — — — — — — — — — —
70: — — — — — — — —
Ahh, da ist er ja. Also können wir ihn ja mal fragen:
So sieht es doch gut aus. Nur wer will immer diese Zahl umrechnen? Also gucken wir mal und lassen es uns mal etwas lesbarer anzeigen.
> awk ‘{print( \
> (“0x”substr($1,5,2)substr($1,3,1))*0.0625) \
> }’
So sieht es doch schon viel besser aus. Blöd nur das ich jetzt jedes mal diese Salat einhecken soll. Dafür gibt es aber bash. Das ist schnell im vi gehackt und unter LM75.sh gespeichert,
#!/bin/bash while true; do i2cget -y 0 0x48 0x00 w | awk '{print(("0x"substr($1,5,2)substr($1,3,1))*0.0625)}' sleep 60 done
Sehr schön, jetzt können wir mit ./LM75.sh das Script starten und zusehen wie alle 60 Sekunden eine Temperatur angezeigt wird.
Sorry, the comment form is closed at this time.