(https://statics3.seeedstudio.com/seeed/file/2017-09/bazaar572845_grove_co2_sensor.jpg)
Resimdeki co2 sensörünü protonda hserin komutları ile nasıl okuyabilirim?
kendi datasheetinde c örnek kodu mevcut.protonda serial okuma için kodu çevirmem gerekiyor.yardımcı olabilirmisiniz?
char getCheckSum(char *packet)
{
char i, checksum;
for( i = 1; i < 8; i++)
{
checksum += packet[i];
}
checksum = 0xff – checksum;
checksum += 1;
return checksum;
}
Burda okuma yapılmamış, packet adı diziye daha önce 8 byte lik veri kaydedilmiş.
Bu verinin doğruluğu kontrol ediliyor.
S.A.
Sn. Mustafa burada uart dan gelen 8 baytlık veri üst üste toplanarak 255 den çıkartılıyor sonra 1 ile toplanıyor. Sonuç geri dönüyor.
Alıntı yapılan: Murat Mert - 11 Kasım 2018, 20:31:53S.A.
Sn. Mustafa burada uart dan gelen 8 baytlık veri üst üste toplanarak 255 den çıkartılıyor sonra 1 ile toplanıyor. Sonuç geri dönüyor.
crc dedikleri olay sanırım bu.
Evet crc kısmı bu.
Merhaba,
Sensörün veri kağıdında komutlar mevcut. Veri Kağıdı (https://www.winsen-sensor.com/d/files/PDF/Infrared%20Gas%20Sensor/NDIR%20CO2%20SENSOR/MH-Z16%20CO2%20V2.1.pdf)
CO2 seviyesini okumak içik aşağıdaki diziyi göndereceksiniz.
0XFF 0x01 0x86 0x00 0x00 0x00 0x00 0x00 0x79
Sensör size aşağıdaki gibi yanıt verecek
0XFF 0x86 0x02 0x60 0x47 0x00 0x00 0x00 0xD1
Gelen cevapta 2. ve 3. byte CO2 seviyesidir. (Byte2*256+Byte3)
Gönderilen ve gelen dizideki son byte kontrol değeri olup mesajınızda yazdığınız gibi hesaplanıyor.
Herkese iyi forumlar.