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
   62   63   64   65   66   67   68   69   70   71   72