hoi,
Ik ben met een projectje bezig om vochtigheid en temperatuur te meten, ikwou dit doen met sensor SHT11 van sensirion, en een microcontroller:AT89s8252.
Nu vraag ik mij af of dit mogelijk is. Ik heb een beetje kennis van 8051 programeren onder assambler, en heb al een poos zitten zoeken, maar ik geraak er niet uit.
Wie kan mij helpen?
Natuurlijk is dit mogelijk. Ik heb zelf de SHT11 aangesloten op een ATMega16 en een AT90S2313 (Allebei AVR dus). De code om de temperatuur en luchtvochtigheid uit te lezen heb ik geschreven in ASM en C. Het protocol is zeer eenvoudig.
heb al een poos zitten zoeken, maar ik geraak er niet uit.
Beetje onduidelijk, waar geraak je niet uit?
Hoe ik die 12 bit code moet inlezen in de µp lukt nog wel maar de verwerking ervan zie ik niet direct zitten
En de verwerking van de CRC-8 checksum
[Bericht gewijzigd door Pipistrellus op ]
Kan je mij anders die kode in asm eens sturen. Dan kan ik die eens bekijken en zie ik misschien hoe ik verder moet voor mijn µP
Wat betreft de CRC: heb je dit doorgelezen? Dat is volgens mij nog wel redelijk te doen in ASM.
(Nee ik kan www.sensirion.com ook niet bereiken, heb dit even snel van Google gevist)
Zelf heb ik echter nog niet de berekening van de CRC geïmplementeerd. Ik lees de CRC momenteel wel uit, maar gooi hem dan ook direct weer weg.
Hoewel het volgens de datasheet niet noodzakelijk is om de CRC uit te lezen (Skip acknowledge to end transmission (if no CRC is used)) heb ik gemerkt dat je dit beter wel kunt doen. Als je het niet doet gaat de volgende meting meestal fout (dit vind ik zelf nogal merkwaardig).
Het programma dat ik heb geschreven in ASM leest alleen de temperatuur uit. Het omzetten van het 14 bits getal naar een decimaal getal is nog wel te doen in ASM. (Temperatuur = -40 + 0,01 * Getal)
Het omzetten van de luchtvochtigheid (12 bits) naar een bruikbaar decimaal getal was wat lastiger.
(Luchtvochtigheid = -4 + 0,0405 * Getal + -2,8E-6 * Getal ^ 2)
Ik heb dit in C gedaan, omdat ik al voorzag dat dat ingewikkeld zou worden in ASM.
No_Brain
"What are we going to do tonight, Brain?". "Same thing we do every night, Pinky: try to take over the world!"
Bascom is een vrij eenvoudige programmeertaal en daar hebben ze een stukje code dat je zo kunt overnemen. Ook staat er op de site een zeer goede handleiding voor Bascom.
http://www.mcselec.com/, kijk onder Application Notes
Sensirion heeft ook voorbeeldcodes op hun site (meen in C). Met die voorbeelden moet je toch een heel eind kunnen komen.
Kijk verder eens op http://www.njqrp.org/digitalhomebrewing/pic-wx/pic-wx-3.html en eventueel http://www.panoramix.demon.nl/pics/bart.gif
[Bericht gewijzigd door No_Brain op ]