Page 67 - Microcontrolere - Indrumator de laborator
P. 67
if (TOFF_TIME <= 84 && TOFF_TIME >= 76) {
while (1) {
TON_TIME = pulseIn(DHT11_PIN, HIGH);
if (TON_TIME <= 28 && TON_TIME >= 20) {
bit_data = 0;
}
else if (TON_TIME <= 74 && TON_TIME >= 65) {
bit_data = 1;
}
else if (bit_counter == 40) {
break;
}
data_byte[bit_counter / 8] |= bit_data << (7 - (bit_counter % 8));
data_packet[bit_counter] = bit_data;
bit_counter++;
}
}
checksum_byte = data_byte[0] + data_byte[1] + data_byte[2] + data_byte[3];
if (checksum_byte == data_byte[4] && checksum_byte != 0) {
Serial.println("Umiditatea: ");
for (int c = 0; c <= 7; c++) {
Serial.print(data_packet[c]);
}
Serial.print("\t");
for (int c = 0; c <= 7; c++) {
Serial.print(data_packet[c + 8]);
}
Serial.print("\t");
Serial.print(data_byte[0]);
Serial.print("%");
Serial.println(" ");
Serial.println("Temperatura: ");
for (int c = 0; c <= 7; c++) {
Serial.print(data_packet[c + 16]);
}
Serial.print("\t");
for (int c = 0; c <= 7; c++) {
Serial.print(data_packet[c + 24]);
64