Нам понадобится:
Arduino nano: http://ali.ski/gC_mOa
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Arduino uno может измерять сама свою температуру. В данном примере это и показано.
Для чего это нужно? ну например вы грешите на то, что Ваша ардуинка сильно греется, залейте скетч и проверьте так ли это. Вообщем данный программный код предназначен для диагностики вашего микроконтроллера.
Необходимо скопировать программный код приведенный ниже и вставить его в программу Arduino IDE и загрузить этот программный код в саму плату Arduino.
// Internal Temperature Sensor // Example sketch for ATmega328 types. // // April 2012, Arduino 1.0 void setup() { Serial.begin(9600); Serial.println(F("Internal Temperature Sensor")); } void loop() { // Show the temperature in degrees Celsius. Serial.println(GetTemp(),1); delay(1000); } double GetTemp(void) { unsigned int wADC; double t; // The internal temperature has to be used // with the internal reference of 1.1V. // Channel 8 can not be selected with // the analogRead function yet. // Set the internal reference and mux. ADMUX = (_BV(REFS1) | _BV(REFS0) | _BV(MUX3)); ADCSRA |= _BV(ADEN); // enable the ADC delay(20); // wait for voltages to become stable. ADCSRA |= _BV(ADSC); // Start the ADC // Detect end-of-conversion while (bit_is_set(ADCSRA,ADSC)); // Reading register "ADCW" takes care of how to read ADCL and ADCH. wADC = ADCW; // The offset of 324.31 could be wrong. It is just an indication. t = (wADC - 324.31 ) / 1.22; // The returned temperature is in degrees Celsius. return (t); }
Скетч: https://yadi.sk/d/fX735NX5sFavQ
Демонстрация работы данной программы можно увидеть в видео приведенном в конце статьи.