Anda di halaman 1dari 2

void baca_sensor() { char dum; // variabel sementara suhu=0; humi=0; counter=0; DDRD|=(1<<PD3); //PD3 sebagai output _delay_ms(250); PORTD

&=~(1<<PD3); // nolkan PD3 _delay_ms(18); //tunggu 18 ms PORTD |=(1<<PD3); // naikkan PD3 _delay_us(40); //tunggu 40us DDRD &=~(1<<PD3); //PD3 sebagai input //tunggu response dari DHT11 while(counter <100) { _delay_us(1); counter++; if (bit_is_set(PIND, 3)) break; } counter=0; while(counter <100) { _delay_us(1); counter++; if (bit_is_clear(PIND, 3)) break; } //baca data setelah response, lihat script di pembahasan selanjutnya untuk routi ne hitung() //8 bit pertama ( puluhan kelembaban ) humi=hitung(); //8 bit kedua( satuan kelembaban ), tidak usah di baca karena nilai selalu 0 unt uk DHT11 hitung(); //8 bit ketiga ( puluhan suhu ) suhu=hitung(); //8 bit keempat ( satuan suhu ), tidak usah di baca karena nilai selalu 0 untuk DHT11 hitung(); //8 bit ke 5 tidak perlu dihitung //tulis lcd lcd_gotoxy(9,0); itoa(suhu,&dum;); lcd_puts(&dum;);

lcd_gotoxy(9,1); itoa(humi,&dum;); lcd_puts(&dum;);

Anda mungkin juga menyukai