Fermentor hőmérséklet méréséhez tartozó C kód (I2C)

Fermentor hőmérséklet méréséhez tartozó C kód (I2C)

A hőmérséklet mérést termisztorral valósítjuk meg, lásd előző cikk (Hőmérséklet mérés termisztorral). Az adatfeldolgozásért  és továbbításért egy egycsipes mikrovezérlő az ATmega328 lesz a felelős, ami igen nagy luxusnak számít, tekintve a csip kapacitását, viszont demonstrációs célok és a jobb áttekinthetőség kedvéért emellett döntöttünk. Az alábbi kód 0-1023 között egy átlagolt számot küld I2C interfészen keresztül a raspberrynek, az ezen futó szerver oldali kód pedig majd elvégzi a hőmérséklet kiszámítását a Steinhart–Hart összefüggés alapján.

Egy dologra mindenképpen figyelni…

 
Read More

Raspberry és Atmega328 közötti I2C kommunikáció

Raspberry és Atmega328 közötti I2C kommunikáció

Raspberry és Atmega328 közötti I2C kommunikáció
Ez a cikk lényegében a folytatása a I2C kommunikáció két ATmega328 közöttinek. A pH és a hőmérséklet mérés adatainak átvitelére I2C-t használunk, aztán jött a CO2 szenzor ami csak az UART-ot ismeri. Nagyon nem akartunk egy másik adatátviteli módot implementálni, így a megoldás az lesz, hogy a szenzor UART-on elküldi az adatokat az ATmega csipnek, ami meg I2C-n továbbítja a Raspberry felé.

 
Read More

I2C kommunikáció két ATmega328 között

I2C kommunikáció két ATmega328 között

I2C kommunikáció két ATmega328 között
Az I2C egy soros, 8 bit-es, kétirányú kommunikációs protokoll, amelynek sebessége normál üzemmódban 100kbit/s, gyors üzemmódban 400kbit/s. I2C busz csak két db kétirányú vezetékből áll (SDA és SCL), amelyre az összes eszköz is csatlakozik. Az egyik vezeték az (SDA – Serial DAta), amin a soros adatforgalom zajlik; a másik pedig az órajel vonal (SCL – Serial CLock), amit az I2C buszon történő mindkét irányú adatátvitel szinkronizására használunk. Az SDA és az SCL vonalak az I2C buszon lévő minden eszközhöz hozzá vannak kötve (plusz természetesen a tápvezeték és a föld is).

 
Read More