Teardown and OpenBeken drop in for https://obrazki.elektroda.pl/2073381600_... https://obrazki.elektroda.pl/6296432100_... https://obrazki.elektroda.pl/3197909200_... Moim celem było umożliwienie regulacji amperów/mocy z MQTT lub asystenta domowego podczas ładowania EV. Można to zrobić za pomocą OpenBeken....
Tutaj przyjrzę się czujnikowi kontaktowemu LoraTap/Tuya MC100W do monitorowania otwarcia/zamknięcia drzwi/bramy/okna. Zakup w Ali Express https://www.aliexpress.com/item/10050072... https://obrazki.elektroda.pl/8345087100_... https://www.loratap.com/products/mc100w Pudełko, części, elementy wewnętrzne urządzenia: https://obrazki.elektroda.pl/8141601100_...
Kiedyś umieściłem na obecnie niedostępnej stronie and.elektroda.eu materiał o dekodowaniu sygnału DCF. Urządzenie potrzebne było w urządzeniu, które wymagało synchronizacji czasu w pomieszczeniu gdzie wyprowadzenie anteny zewnętrznej do GPS było utrudnione. Poniżej umieszczam treść oryginalnego materiału, który może być pomocny przy budowaniu urządzeń...
Wkradł się bład przy wpisywaniu. Fuse Bity E4 D9 a nie 99 bo to pokazuje jasno na Twoim screenie Watchdog Always On :D Wyswietlacz nawet bez nadajnika ma wyświetlac po starcie trzy poziome kreski. W programie łatwo odczytać że żeby ustawić zero na wyświetlaczu procesor podaje masę na sześć segmentów. Wspólna końcówka wyświetlacza jest sterowana poprzez...
Może tutaj coś znajdziesz, na tych ?? stronach z Bułgarii You may set the image mode to "energy Saving", which in turn automatically turns the timer off, also check the timer can hold up to 240 minutes. Mode "Natural". In the General settings TV 2 item with the name "Timer off" :confused: one from 0 to 180 min off, the second from 0 to 240 min, now...
Ten kod jest napisany dla ATmega103 ( niedostępny już w handlu) a jego następca to ATmega128. Poniżej poprawki dla WinAVR ( ten kod był dla kompilatora IAR): 1. #include <iom103.h> #include <ina90.h> ma być #include <avr/io.h> #include <avr/signal.h> 2. type def struct{ ma być typedef struct{ 3. interrupt /**** A V R A P P L...
Przedstawię Ci kolego przykład zastosowania Pulsein żebyś miał jaśniej. Myślę że będzie "rzeczowiej". To przykład dla dekodowania transmisji pilotów podczerwieni. Sygnał podłaczony jest do zewnetrznego przerwania INTx i w momencie zmiany na pinie program skacze do tej procedury. Mierzy impuls i poddaje rozwadze jego długość. [syntax=basic4gl]Int_1isr:...
Coś takiego znalazłem. Co prawda na Atiny ale można przerobić. [syntax=c]// // Talking to ultrasonic sensor HC-SR04 with an ATtiny84, and // sending distance data using serial communications. // // electronut.in // #include <avr/io.h> #include <string.h> #include <util/delay.h> #include <avr/interrupt.h> #define F_CPU 8000000...
Witaj, choć z True RMS , ale podstawowa niedokładność tylko 0,5 % , a o pozostałych lepiej nie wspominać, zobacz: Volts DC Ranges (5) 400mV to 1000V Best Resolution 0.1mV Accuracy ± (0.5% Rdg + 2D) Volts AC Ranges (5) 400mV to 750V Best Resolution 0.1mV Accuracy ± (1.5% Rdg + 5D) DC Current Ranges 400µA, 400mA, 20A Best...
Jako format pliku mam ustawione TS. Czy jak zmienie na PS to coś da? W ramach testu możesz zmienić i zobaczysz różnicę... Co z oprogramowaniem to nie wiem. Nie aktualizowałem go nigdy. Sprawdź sobie z ciekawości jaka masz wersję, aktualna jest z 20 sierpnia 2014: http://www.ferguson-digital.eu/pl/pobier...
nie wiem czy o to chodziło bo nie mam na czym uruchomić tego programu (tzn. mam Bascom ale nie mam zestawu '51), ale wg mnie dopiero ten program zadziała: $crystal = 16000000 '$default Xram $large Dim Cyfra(12) As Byte Dim Jedn_sekund As Byte Dim Tempo As Byte Config Timer0 = Timer , Gate = Internal , Mode = 1 Th0 = &Hd8 ' Tl0 = &Hd7 ' =10025 cykli...
] Gdybym chciał jednak mierzyć załóżmy do 1kHz to wymaga aby zliczać przepełnienia? Dlatego napisałem..."Nie znaczy to jednak..." w złym obliczeniu 1 sek wartość wynosiła 61630, przy prawidłowym obliczeniu wynosi 34 286 uwzględniając czas 1sek, częstotliwość taktowania 8MHz i prescaler 256. Przecież czas (1 sec.) odmierzasz timerem0, który jest 8-bitowy...
https://obrazki.elektroda.pl/8382950200_... OpenBeken posiada system głębokiego uśpienia, który pozwala w zasadzie wyłączyć BK7231 do momentu upływu określonego czasu (DeepSleep) lub do wystąpienia zdarzenia GPIO (takiego jak naciśnięcie przycisku - PinDeepSleep). W przypadku urządzeń zasilanych bateryjnie ta funkcja jest niezbędna,...
https://obrazki.elektroda.pl/6969507000_... Witam Po wykonaniu zegara na lampach Nixie, wpadłem na pomysł wykonania czegoś o podobnej zasadzie działania, lecz z długą żywotnością owych wyświetlaczy cyferek. Obudowa wykonana ze sklejki 8 mm, którą wyfrezowałem na cnc3018, sklejona warstwowo i pomalowana lakierobejcą. Z czarnej pleksi...
https://obrazki.elektroda.pl/9894384200_... Witam! Chciałbym przedstawić wykonany prze zemnie VU metr. przeglądając różne konstrukcje na YT postanowiłem złożyć w większej wersji takowy audiowizualny gadżet. VU metr ma wysokość ok 376mm i średnice 150mm. Dyski (26szt) wykonane zostały na laserze z przeźroczystej pleksy 5mm. W celu uzyskania...
KEELOQ + rolling code można wykorzystać w swoim projekcie DIY bez przeszkód? Oczywiście. Dodano po 33 Mogę zainteresowanym podać kod KEELOQ dla pilota i odbioru , oczywiście z innymi danymi pilota ;). PILOT: Dodano po 10 Bardzo ciekawy i użyteczny projekt, właściwie to prototyp, który może przekształcić się w produkt. A czego mu brakuje żeby już nie...
ten skrypt może wymagać pewnych poprawek, ale generalnie, jeśli ,,ping watchdog" nie działa, to nie jestem pewien, co może się dziać. Być może będziemy musieli zbadać to nieco dokładniej, czy jest jakaś możliwość uzyskania dziennika UART takiego urządzenia? W najgorszym przypadku mogę rozważyć dodanie jakiejś historii samodzielnego logowania do LittleFS...
Powiedzcie mi proszę co w moim przykładzie jest nie tak. Temperatura się wyświetla w obydwóch polach na wyświetlaczu, ale naprzemiennie. Jak zrobić żeby jedna była na jednym a druga na drugim? [syntax=c]#include "Nextion.h" #include "NexText.h" #include "NexGauge.h" #include <OneWire.h> #include <DallasTemperature.h> OneWire ds(7); // deklaracja...
Witam , Wracam do tematu . Zegar skończony i przetestowany . Podziękowania dla autora za pomoc . Kilka krótkich filmów z pracy zegara wykonane telefonem . https://filmy.elektroda.pl/11_1551555088... https://filmy.elektroda.pl/90_1551555174... https://filmy.elektroda.pl/15_1551555225... https://filmy.elektroda.pl/89_1551555287... Jedna z dwóch gier...
Witam wszystkich serdecznie! Potrzebuję pomocy z pewnym zadaniem z systemów wbudowanych, 4 rok studiów. Programuję w języku C środowisku CooCox CoIDE procesor STM32F103ZET6 użyty w module HY-RedBull_V3 posiadający 3,5-calowy ekran dotykowy TFT LCD HY35A (kontroler LCD SSD1963, kontroler ekranu dotykowego ADS7843 lub XPT2046), który ma wykonać poniższe...
https://obrazki.elektroda.pl/1309020300_... Nowa płytka Arduino https://obrazki.elektroda.pl/1084142900_... https://obrazki.elektroda.pl/9468445200_... Do rozpoczęcia pracy z NANO Every uruchamiamy menadżer płytek: Narzędzia->Płytka->Menadżer Płytek Wyszukujemy "every" i wybieramy pakiet:...
To zadziałało!!! Połączyłem to pole z asystentem domowym, używając automatyzacji przy każdej zmianie zdefiniowanego przeze mnie numeru wejściowego, co ostatecznie wywołuje publikację MQTT z wartością numeru wejściowego. To działa idealnie. Oto aktualizacja autoexec.bat dla każdego, kto jest zainteresowany: // P26 - Relay 1 Close // P7 - Btn 2 Stop //...
Witam ponownie, Poszedłem o krok dalej i moim planem jest podłączenie każdego z czterech wtryskiwaczy do osobnego pinu Arduino Uno/Nano z Atmega 328p. Pozwoliło mi to na skonstruowanie programu aby sterować każdym wtryskiwaczem z osobna z tą samą częstotliwością i wypełnieniem, ale sygnał do ich wysterowania jest przesunięty około 90° (problem z rozdzielczością...
https://obrazki.elektroda.pl/1275250200_... Czy zdarzyło Ci się kiedyś nie usłyszeć dzwonka do drzwi? Na przykład będąc w części domu, w której go po prostu nie słychać - w zamkniętej sypialni, piwnicy albo na strychu? A może wystarczyło słuchać muzyki w słuchawkach? Dzięki poniższemu projektowi problem ten przestanie istnieć. Poniższy...
Cześć. Koledzy składam wagę z projektu który znalazłem i niestety na arduino uno zabrakło miejsca . Nie jestem programistą i sam nie jestem w stanie kodu zoptymalizować. Jedynie usunąłem wybór języka i zaoszczędziłem 2% pamięci. Jest jeszcze tylko o 1% za dużo więc ośmielam się prosić o pomoc tutaj na forum. Szkic używa 32856 bajtów (101%) pamięci programu....
Cześć, po analizie działania enkodera obrotowego (mechanicznego) i ilości problemów, jakie on dostarcza, postanowiłem skonstruować prosty układ elektroniczny, który "wygładzi" impulsy enkodera. Układ posiada dwie wersje. Obie są na przerzutnikach Schmitta. Pierwszy na pojedynczych układach TI SN74LVC1G17: https://obrazki.elektroda.pl/5101546100_...
Oto kod, gdyby ktoś chciał pobawić się podobnym systemem. long Htime; //integer for storing high time long Ltime; //integer for storing low time long Ttime; //integer for storing total time of a cycle long frequency; //storing frequency ISR(TIMER1_OVF_vect) // interrupt service routine { TCNT1 = 3035; // Interrupt runs once a second (at)...
https://obrazki.elektroda.pl/3305421000_... Ostatnio trafiłem na czujnik tętna oparty o element fotoelektryczny. Testując czujnik UV z cyfrowym interfejsem Ostrzeżenie: Tego typu tanie czujniki "medyczne" nie mają nic wspólnego z prawdziwą elektroniką medyczną, prezentuję tutaj efekty własnych prób podejmowanych na własne ryzyko, osoby...
Witam. Mam pewien problem. Zacząłem uczyć się Bascoma (tak, wiem, głupi wybór, ale chodziło mi o prostotę). Na razie na swoim koncie mam zegar na DS1307 i LCD 2*16, teraz coś mnie napadło na wykorzystanie timerów i kupionych kilka lat temu wyświetlaczy 7-segmentowych wspólna katoda. Na razie napisałem tyle: [syntax=basic4gl] $crystal = 12000000 Declare...
główny plik wygląda tak #include<avr/io.h> #include<ścieżka do rc5.h> int main() { DDRD=0x00;;//Porty D jako wejścia DDRB=0xFF;//PORTYB jako wyjścia PORTB=0xFF;//portb w stan wysoki rc5_init(); sei(); while(1) { if(rc5data) { PORTB=0x00; } } } Dodano po 13 włożyłem wszystko...
Troche długo mnie nie było ale miałem parę spraw na głowie. Co do tego Timera to ostatnio znów walczyłem i konfiguracja jest w porządku. Wina leży najprawdopodobniej gdzieś na płytce (bądź w procesorze), bo gdy podpiąłem kwarc do innej płytki z atmega128 to Timer działał bez zarzutu. Tak więc temat zamknięty. Dzięki wszystkim za pomoc! Pozdrawiam! P.S....
Aż głupio i wstyd pisać o takim problemie, ale w końcu portal od tego jest. Krótko i na temat : Mam problem z uaktywnieniem clock alarmu + INT Timer Alarm działa prawidłowo, Clock alarm już nie. startuje zasilanie, PCF'ka zaczyna wszystko liczyć od "zera" czyli 00.00.01 00:00:00 CONTROL STATUS o adresie 0x00 ustawiam na 0x04 bit 3 zostaje aktywowany...
Siema. Otóż mam taki problem, podczas gdy kod ładowania i zerowania data DACx działa, np DACB1 = 0 waitus 500 DACB1 = 4095 (full zakresu) waitus 500 daje jakieś 2Khz pisku w słuchawkach co jest oznaką działania , to gdy ładuję próbki muzyki wav z karty na zasadzie DACxx = pwm nic się nie dzieje. Tu całt kod xmega: [syntax=basic4gl] '=======================================...
To ma być tak. #include <8051.h> #include <stdio.h> #define PortLED P2_0 #define TH0RELOAD 0x4B #define TL0RELOAD 0xf0 unsigned char SECOND=20; //1sek to 20 przerwan od Timer void main(void) { TH0 = TH0RELOAD; TL0 = TL0RELOAD; TMOD = TMOD | 0x01; TR0 = 1; ET0 = 1; EA = 1; while(1) {}; } void T0_int(void)...
Mi nie chodzi konkretnie o przerwanie. Jest tak: Timer t0 pracuje w trybie asynchronicznym i co 0.5s generuje przerwanie Ja w tym przerwaniu sprawdzam zawartosc rejestru TCNT odpowienio przeliczam ilosc impulsow ktore zliczyl i wyswietlam. SIGNAL(SIG_OVERFLOW0) { Rpm = TCNT2; Speed = TCNT1L; outp(0x00, TCNT3); outp(0x00, TCNT1L);...
Mógłby ktoś napisać obsługę tego timera ? Widzę przykłady w internecie ale bez zrozumienia. [syntax=c]//niezbędne pliki nagłówkowe #include <stddef.h> #include "stm32f10x.h" //DEFINICJE PREPROCESORA //CCMRx #define OC3M_0 (1<<4) #define OC3M_1 (1<<5) #define OC3M_2 (1<<6) #define OC4M_0 (1<<12) #define OC4M_1 (1<<13)...
W Helpie Bascoma jast następująca informacja: Config Timer2 = Timer , ASYNC = 1 , Prescale = 128 On TIMER2 Myisr ENABLE INTERRUPTS ENABLE TIMER2 DO LOOP MYISR: 'get here every second with a 32768 Hz xtal RETURN Może zmień ON na 1?
To dobrze, że już wszystko wyjaśniliśmy w pewnych kwestiach. Przerobiłem troszke program, ustawiłem Timery w odpowiednie tryby, jednakże prgoram nie działa. Może wiecie czego brakuje w tym kodzie , ewentualnie co jest nie tak?Może zerowanie Timerów jest źle zrobione? Po przejściu dwóch impulsów dioda się niezapala. Kod poniżej. Pozdrawiam. #define PortLED...
Tak kolego masz rację. Pierwotny kod był wklejony na początku projektu, teraz jest trochę większy... Println nie ma, ale może Cię zmylił sam wyświetlacz -jest to P10 RGB. Czcionka z nim działa prawidłowo, ale polskie trochę kuleją... Poniżej kod i proszę o pomoc. [syntax=c] // This is how many color levels the display shows - the more the slower the...
Witam serdecznie tworze prosty stoper/timer i chciałbym z funkcji millis() wyciagnac dziesietne sekundy ( tylko dziesietne ) czy podzielenie miliis() przez %10 zalatwi sprawe? Fragment przykladu z arduino Timer library. [syntax=c]#include "Timer.h" Timer t; int ledEvent; int a = 15000; void setup() { Serial.begin(9600); int tickEvent = t.every(millis(),...
Witam! Mam taki dość nietypowy problem. Kontroler ma reagować na jedno z trzech przerwań: TIMERa 0 i dwóch zewnętrznych (czujki ruchu). Te przerwania zewnętrzne zliczają liczbę reakcji czujek, natomiast TIMER 0 ma odmierzać czas i dzięki niemu co kilka sekund mają być wyświetlane statystyki. Bez TIMERa 0 wszystko działa ok, ale statystyki lecą cały...
Tak. To plexa z grawerowanymi cyframi, cały projekt jest tu pod linkiem : https://obrazki.elektroda.pl/3515599500_... https://obrazki.elektroda.pl/1132266300_... https://obrazki.elektroda.pl/2617164600_...
Hi, I found this. [syntax=c]// ### Initiate timers and USART // Frame buffer interrupt TCNT2 = 0x00;// initial counter value = 0; TIMSK |= (1 << OCIE2); // Enable CTC interrupt // Every 1024th cpu cycle, a counter is incremented. // Every time that counter reaches 15, it is reset to 0, // and the interrupt routine is executed. // 14745600/1024/15...
Witam wszystkich Przychodzę do was z problemem, iż nie potrafię połączyć arduino+kodu+modułu sieciowego w jedno aby wszystko działało. Korzystam z: Moduł sieciowy 2.4GHz nRF24L01: //abc-rc.pl/product-pol-6407-Modul-sieci... Oryginalne Arduino nano oraz klon DFRduino Uno V3.0 Biblioteką programu(arduino)...
Witam. Programuję sobie urządzenie w którym mam zajęty cały PORTB a potrzebuję podłączyć przycisk tak aby jego przyciśnięcie wyzwalało przerwanie. Wymyśliłem, że użyję do tego pinu T1CKI z którego sygnał użyję do przepełnienia timera1 ustawianego każdorazowo na wartość 0xFFFF. Timer1 inicjalizuję w poniższy sposób: krzysiek_krm napisał: "Zapomnieliście...
Witam Potrzebuję podpiąć się pod zegar sterujący PWM arduino aby uzyskać przerwania co 50 do 100ms czyli co np 50 ms nastąpiło by przerwanie i wywołanie odpowiedniej funkcji. Niestety nie potrafię tego kodu co znalazłem w internecie rozgryść czy ktoś mógłby mi wyciągnąć z poniższego kodu co jest niezbędne do zrealizowania tego i wytłumaczyć co z czym...
Poczytaj o tym, bo warto od razu przejść na taki "wyższy poziom" niż brnąć w ślepą uliczkę z blokowaniem programu przez zbędne delaye. W sumie czy aby przypadkiem migająca dioda w tempie 1s ze zmiennym wypełnieniem na jakimkolwiek timer to nie jest program z tych w rodzaju "Hello AVR!" :D Brakuje mi ewidentnie tutaj jakiegokolwiek ISR'a ;) // Clock...
w mainie w funkcji while(1), sprawdzam tylko warunek if(bit_is_clear(PIND,PD2)) rc5decode(); <-- TAK DZIAŁA ! jak wywołać tą funkcję w przerwaniu SIGNAL(SIG_INTERRUPT0) {}, ? probowałem tak: w mainie: GICR |=1<<INT0; w przerwaniu od INTO: SIGNAL(SIG_INTERRUPT0) { GICR &= ~BV(INT0); rc5decode(); //wywołanie porządanej...
Witam wszystkich, robię mały projekt do którego używałem Atmegę8. Zaczyna mi brakować pamięci więc stwierdziłem, że wymienię ją na Atmegę328. Niestety jest trochę zabawy z przerobieniem kodu, po pierwsze w Atmega328 nie można używać PD0 itp, tylko PORTD0. Po drugie timery ustawia się innymi rejestrami. Ogólnie program sobie przerobiłem, niestety została...
Witam ponownie, rozwiązałem swój problem, błąd był banalny i polegał na tym, że ustawiałem stan wysoki w rejestrach instrukcją |= i to było ok, ale nie zerowałem bitów tam gdzie powinny być zera instukcją &= ~. Na dole działający kod: [syntax=c]//niezbędne pliki nagłówkowe #include <stddef.h> #include "stm32f10x.h" //DEFINICJE PREPROCESORA...
second breakdown second bootloader second loader failed
ustawienie transportera łucznik wymiana grzałki karta pamięci uszkodzona
oświetlenie światłowodowe kabina prysznicowa
Brak regulacji obrotów dmuchawy pieca CO: sterownik czy dmuchawa? Gorenje MEKI610I – brak wyświetlania czasu, zegar nie działa, tryb ECO, kondensatory