LPD8806-Lan
From Frack - Hackerspace Friesland
Jump to navigationJump to searchInterface om vanaf ethernet via een arduino direct de leds van een LPD8806 strip aan te sturen.
Contents
Hardware
De hardware in dit project is een Arduino gekoppeld aan een ENC28J60 netwerk module en een LPD8806 ledstrip.
Code
De code voor dit project is in 2 delen opgesplits, het ontvangende deel op de arduino welke een webserver op poort 80 opzet en wacht op "requests", en het deel dat de kleurtjes per led berekend en ze via telnet naar de webserver stuurt. De code is beschikbaar op: https://github.com/JanKlopper/lpd8806-ethernet
Protocol
- Per http request wordt er een volledige string leds aangestuurd, leds waar geen data voor is ontvangen worden door de arduino uitgeschakeld.
- Per led moeten er 3 ascii karakters gestuurd te worden. De waarde van deze karakers in de (extended) Ascii table - 65 is de intensiteit. (we beginnen met tellen bij A om het protocol leesbaar te houden)
- De eerste van 3 karakters is de rode bit, de tweede de groene en de derde de blauwe.
- Bij een A (ascii 65) wordt de intensiteit 0, bij een z(ascii 122) is deze dus 122-65 = 57, ongeveer de helft van de maximale (127, want 7 bit) intensiteit van de kleur.
- Met een enter (\r of \n) wordt de request afgesloten en zal de ledstrip oplichten.
Telnet voorbeeld
telnet 192.168.2.16 80
AAzAzAzAA
Dit zet de eerste 3 leds elk in een kleur, de eerste blauw, de tweede groen en de derde rood.