Aktykuły które nie zmieściły się w żadnej kategorii

0102 /03
04Jest to projekt bezprzewodowego termometru radiowego z zasilanie bateryjnym. Zastosowana bateria spokojnie wystarcza na roczną pracę urządzenia. Procesor co sekundę nadaje radiowo informację o aktualnej temperaturze oraz stanie baterii. PCB jest tak zaprojektowane by nie było żadnych przelotów na drugą stronę PCB. Zwory są robione rezystorami SMD o wartości 0 om. Cała płytka jest zabezpieczona lakiem ( do elektroniki ) dzięki czemu dobrze znosi zewnętrze warunki atmosferyczne, zima lato. 06
070809

Schemat bezprzewodowego termometru

Jak widać układ jest prosty. Zastosowałem moduł radiowy RFM69W-433S2, sterowany procesorem Atmega328P. Układ mierzący temperaturę to MCP9800 który można wprowadzić w obiżóny pobór prądu, sterowany szyną TWI. Na rezystorach R16 i R15 zrobiłem pomiar napięcia baterii. W celu zmniejszenia poboru prądu dzielnika rezystancyjnego jest on po pomiarze napięcia podciągany do zasilania. R7 to kwarc 32kHz w wersji SMD 0805. Dioda LED-IRQ2 sygnalizuje moment nadawanie modułu RFM69. Dioda LED-SCK sygnalizuje programowanie procesora.



  1.     RFM69_Config();  // konfiguracja RFM69
  2.     RFM69_write( REG_NODEADRS , 20 );  // adres w sieci
  3.     RFM69_Tryb(SLEEP);  // wejście w tryb sleep
  4.     initTimer2();
  5.     sei();
  6. #ifdef debug //=============================
  7.         rsPrintLn(" > Wejscie w sleep");
  8. #endif       //=============================
  9.         PRR = 0b10111111; // wyłącz zasilania zostaw timera 2, wyłacz = 1
  10.         set_sleep_mode(SLEEP_MODE_PWR_SAVE);
  11.         wyjdz = 0;
  12.         while (1) 
  13.           {
  14.             while(ASSR & 0x07);  // czeka na zakończenie cyklu
  15.             sleep_mode(); // wejście w stan uśpienia
  16.             if ( wyjdz == 1 ) // sprawdznie czy w tej pętli wykonać zadanie
  17.               { 
  18.                 PRR = 0b00111000; // włacz zasilanie = 0 TWI TIM2 SPI UART ADC
  19.                 WriteDane();  // wysyłanie danych do odbiornika
  20.                 PRR = 0b10111111; // wyłącz zasilania zostaw timera 2, wyłacz = 1
  21.                 set_sleep_mode(SLEEP_MODE_PWR_SAVE);
  22.                 wyjdz = 0;
  23.               }
  24.            }

Powyższy kod przedstawia fragment głównej pętli programu, jak procesor jest wprowadzany w stan uśpienia oraz jak z niego wychodzi. W przerwaniu jest tylko liczony czas i odpowiednio ustawiana zamienna „wyjdz”.


PCB termometru

PCB bezprzewodowego termometru na RFM69


Dasej (C) 2019 : 4580