Ktoś pisze bzdury. Ta metoda da kilka procent fcpu. Lepiej zliczyć impulsy w określonym czasie za pomocą timera w trybie licznika. Drugim timerem mierzysz ten czas. Dla niskich częstotliwości lepiej mierzyć okres impulsu za pomocą ICP.
Przecież masz do pomocy wujka Google: na tifr arduino odpowiada np. http://mikrokontrolery24.pl/mikroproceso... a jak jeszcze dodasz OCF1A , to https://web.ics.purdue.edu/~jricha14/Tim... A w https://www.robotshop.com/community/foru... jest opis programowania timerów - Timer1 jest...
Witam, .......... Czy arduino uno posiada może wbudowany licznik który działa niezależnie od programu? Tak aby przerwaniem co sekunde mógłbym sprawdzać jaka jest wartość w liczniku który liczyłby impulsy? TAK! Arduino posiada ich trzy, funkcjonujące totalnie niezalenie od wykonywanego programu, z pewnymi jednak warunkami lub ograniczeniami. Są to :...
zdania doprowadzają do jedynej IMO słusznej konkluzji w tym wypadku: Arduino. Arduino to ślepa uliczka. W mojej ocenie, Arduino traktuje uC jak Z-8 (CPU + GPIO) czy 8051 gdzie ze sprzętu to głównie proste timery i UART. ZERO wykorzystania sprzętu! Bo co wspierają biblioteki Arduino? UART z malutkim buforem w RAM, I2C to samo. SPI bez bufora, bez przerwań....
Pokaż swoje próby, schemat podłączenia. Na początek wystarczy obsługa millis(), timery sprzętowe można zostawić na coś wymagającego dużej precyzji, odliczenie 60s nie musi być wyliczane z dokładnością pojedynczych cykli zegara uC. Pisanie na prive to kiepski pomysł, jeśli moje rozumowanie jest błędne tutaj od razu ktoś to poprawi . Akurat w Arduino...
Nie timery chodzą dokładnie tak jak je ustawiles, a nie jak chcą. Jakiś glitch w oscyloskopie
Domyślam się, że trzeba urzyć innego Timera do obsługi PWM, ale nie wiem którego używa odbiór IR. Poczytałem trochę o Timerach i dla PWM najczęściej stosowany jest tryb CTC. Albo nie do końca zrozumiałeś to co czytałeś, albo autor tej informacji wstawił wierutną bzdurę! Zarówno CTC jak i PWM są to oddzielne tryby pracy timerów w AVR i ich funkcjonalność...
Z delayami tego na pewno nie zrobisz, musisz nauczyć się zarządzać czasem - millis, timery sprzętowe, gotowe biblioteki (timerOne), millis opisane jest w kursie: https://forbot.pl/blog//kurs-arduino-pod... i raczej nie powinieneś zaczynać od jego końca. Coś takiego jak maszyna stanów, switch-case też nie zaszkodzi...
Nie licz na gotowe biblioteki, które najczęściej zawierają masę błędów. Napisz swoją obsługę serwa. Timerem wygeneruj impuls zależnie od tego jaki kąt chcesz uzyskać. Wiele serw nie wymaga przerwy pomiędzy impulsami ok 20ms, jeśli jednak ma ona być to też jest proste, po wygenerowaniu impulsu, wywołane zostanie przerwanie, które zmieni konfigurację...
\ 1. Rozumiem, że ustawienie odpowiedniej częstotliwości da mi czas, który jest mi potrzebny? Tak, program z tego postu demonstruje rejestry i bity których odpowiednie ustawienie spowoduje daną częstotliwość przerwać timerów, a w konsekwencji odpowiednią częstotliwość wysyłania tekstu / migania diodą, jednak obecny ustawiony czas jest przykładowy, nawet...
Już widzę kogoś, kto opiera pętlę główną na delay() i próbuje odczytać przyciski do 3ms ;) ( swoją drogą - po co ? ) Fotokomórka zatrzymująca prasę aby niezmiarzdżyła ręki. Reakcja po np 0,7sekundy nie wchodzi w grę. Albo obsługa enkodera Dekodowanie DCF77 Mnożyć dalej przykłady? 1- w obsłudze przerwania z expandera, odczytujesz rejestry expandera...
Hej, Przyznam że nie mogę do końca zrozumieć metody podanej w linku. ................. (1)Trzeba by zmienić częstotliwość taktowania. (2)wzory na policzenie częstotliwości są w rozdziałach modes of operation poszczególnych timerów. ________________________________________ Ad1. Nie trzeba -wyjaśnienie niżej... (poza tym, jak w Arduino chcesz zmienic...
Banalny przyklad: P1DIR = 0x40; P1OUT = 0; Programista majacy nawet duzo doswiadcznia w C nie wie po prostu do czego odwoluja sie te 2 zmienne i co gorsza dlaczego np 0x40 oznacza w launchpadzie(plytka z TI do msp430) zielona diode. To jest kiepski przykład, bo tak programują tylko i wyłącznie początkujący. Prawdziwy programista użyje przesunięć bitowych,...
Powiem tak - te przejściówki bywają lepsze i gorsze. Niektóre mają piny dodatkowe, inne mają tylko RxD i TxD. Obsłużenie tego czegoś, zarówno software-owo, jak i hardware-owo, będzie nieporównanie trudniejsze, niż wzięcie np. najmniejszego Arduino czy BlackPilla i zaprogramowanie go tak, by robiło co tam planujesz. Wtedy nawet możesz sobie otworzyć...
A Twój wiatrak jest na dachu bloku? Nie na dachu mojego budynku. A to dzisiaj (wiatrak na zwarciu przewody 4mm2 2x15m): https://filmy.elektroda.pl/49_1734359088... Jeżeli mierzysz na dwu wejściach to mi się przypomniało, że chyba w dokumentacji do procesora było jakieś ostrzeżenie, że początkowe pomiary mogą być obarczone większym błędem jeżeli chwilę...
Są gotowe timery https://allegro.pl/oferta/programator-wl... też.
Sterowanie wentylatorem pwm przez arduino mega z wyświetlaczem (at)ElektrodaBot Jak to zrobić z pomocą zasilacza z dwoma wyjśćiami mianowicie 5v i 12v marki Mean Well? AI: Jaki model wentylatora PWM chcesz sterować? Wentylator Noctua NF-A14 iPPC-3000 PWM AI: Jaki typ wyświetlacza jest podłączony do Arduino Mega? Na pewno dotykowy Bezpośrednia odpowiedź...
Udało mnie się zastosować kod zaproponowany przez (at)efi222, natomiast w funkcji void Cyfry musiałem zmienić typ argumentów na int8_t żeby objąć też liczbę -1 po ostatniej dekrementacji. Przy przenoszeniu kodu posiłkowałem się też innym tematem na elektrodzie https://www.elektroda.pl/rtvforum/topic3... gdyż dotychczas stosowałem tylko timery...
https://obrazki.elektroda.pl/6017596700_... Witajcie moi drodzy Dziś przedstawię moją płytkę startową pod 16-bitowy mikrokontroler dsPIC33EP512GM304 wykonaną w technologii SMD. Płytkę bazowałem na źródłach Eagle od Arduino , więc wygląda do niego niewątpliwie podobnie. Projekt płytki Projekt płytki bazuje na jednej z wersji Arduino...
(...) p(potValue, 0, 1023, 0, 255); // Zakres 0-255 // Generowanie sygnału PWM na buzzerku analogWrite(buzzerPin, pwmValue); // Opcjonalnie: Jeśli sygnał PWM nie generuje dźwięku o odpowiedniej częstotliwości, // można użyć funkcji tone() w połączeniu z regulacją amplitudy za pomocą tranzystora. } Wstępna ocena dostępnych informacji Analiza podanego...
Bez zgłębiania się w bibliotekę której nie pokazałeś, obstawiam że prawidłowa wartość sekund to 1-59.
https://obrazki.elektroda.pl/9151185000_... Druga część artykułu o najtańszych nowych mikrokontrolerach z roku 2017. Ekosystem developerski Środowisko developerskie mikrokontrolera ma ogromny wpływ na jakość pracy z nim i w konsekwencji - na produktywność. Na to składają się różne czynniki – jakość IDE, dostępne biblioteki, płytki...
Nie mam niestety analizatora - myślałem, żeby puścić w atmegę coś co 'zesniffuje' impulsy i wypuści np. po serialu na tx i rx, ale trochę kiepski w programowaniu jestem... Chyba że coś w arduino wymodzę - na pewno łatwiej będzie tak niż w ciemno timery przestawiać w programie.
(...) by uzyskać częstotliwości 32Hz (okres 0,03125s) oraz 64Hz (okres 0,015625s). Czy możesz ustalić kombinację okresów z tych dwóch dzielników tak aby w ciągu sekundy otrzymać 60? Możesz też zaproponować kod w Arduino generatora taktującego dla TMS3450. Interesuje mnie jak najmniejszy błąd odmierzania czasu. Wprowadzenie Dziękuję za szczegółowe przedstawienie...
Zamiast delay() możesz użyć millis(). Biblioteki dla wielowątkowości też znajdzesz. Dla krokowców możesz użyć biblioteki AccelStepper: http://www.airspayce.com/mikem/arduino/A... Dostępne biblioteki możesz przeglądać w menadżerze: https://www.arduino.cc/en/Guide/Librarie...
Timery są dobrze opisane tu: http://www.gammon.com.au/timers , co prawda dla Atmega328P, ale zasady są takie same. Przykłady są dla Arduino, ale im szybciej schowasz książkę do Bascom w głębokim archiwum domowym, tym szybciej zaczniesz robić faktyczne postępy, dla Arduino znajdziesz też więcej przykładów, gotowych bibliotek, darmowych kursów na blogach...
Timery rozwiązały problem ;) Dzięki wielkie !
Arduino ma swoje częstotliwości PWM i raczej na niskim poziomie 490 -980Hz. Jak chcesz mieć wyższe to trzeba się zagłębić bardziej w biblioteki, zainstalować dodatkowe i sobie ustawić, timery obsługują millis i delay, więc lepiej nie grzebać przy timerze 0 lub PWM z nim związanym. Na timerze 8 bitowym masz 255 kroków co wydaje się wystarczające o uzyskania...
AVE... Będzie mała ścianka tekstu, bo odpowiadam hurtem. Miałem odpowiedzieć dzień wcześniej, ale za bardzo mnie oko bolało by pisać i tej ciekawej dyskusji uczestniczyć. Ale przeważająca większość tworzy strony internetowe, aplikacje sieciowe czy mobilne - tu wiedza o tym jak działa komputer jest w zasadzie zbędna. A masz jakieś źródła, czy bazujesz...
r"]Myślałem że zmieniam płytkę, wgrywam nowy bootloader i działa tak samo jak inne arduino. Wykonywałem procedurę z tego linku https://geektimes.ru/post/277928/ Będzie "działać tak samo" o ile ograniczysz się do kodu arduino bez odwoływania się bezpośrednio do sprzętu specyficznego dla danego MCU (jak chociażby timery w podanym przykładzie). Swoją...
Funkcja tone wykorzystuje timer sprzętowy, dokumentacja mówi że można generować tylko jeden ton na raz, gdybyś zrezygnował z bibloiteki Arduino i obsłużył timery samodzielnie, to jest ich kilka, mógł byś zsumować wyjścia przez rezystory i podać na wzmacniacz liniowy. W prosty sposób mógł byś obsłużyć dwa dźwięki na raz podłączając do obu półmostków...
Każde PWM niezależnie? Ciężko będzie. Sprzętowe PWM wymaga timera i komparatora... to nie procesor generuje ten przebieg, tylko dedykowany, sprzętowy timer/licznik i komparator. Np. STM32F103 ma 4 timery i każdy z nich ma 4 kanały PWM. https://www.st.com/content/ccc/resource/...
Co jest złego w dawaniu po 1, 2 stopnie po bardzo małej przerwie? Nic. Zło tkwi w tym że używasz do tego funkcji delay() a sprzętowe timery się nudzą :) .
Z tego wynika że on ustawia timer1 do obsługi zegarów systemowych. Szkoda timera1 do tego celu. Większość AVR ma niewiele 16 bitowych timerów jak timer1 (prawie zawsze to timery nieparzyste). Gdy timery są 4 to do wykorzystania będzie tylko jeden 16bit, bo timer1 zajmuje RTOS.
Myślałem że można wyeliminować Arduino i też sterowanie i kalibracje Si5351 zrobić na tym samym ESP8266, ale ESP8266 jest uboższy w timery i ten lepszy jest zajęty przez funkcjonalność WiFi. Lepiej więc użyć ESP32 zamiast ESP8266. ESP32 ma cztery 64-bitowe timery. [url=https://www.espressif.com/sites/def...
Witam, dziś kończę soft i mam nadzieję że to już ostatnia wersja serwo drivera. Aby uprościć sobie trochę zadanie driver jest oparty o atmegę328P, a dokładnie arduino nano. Posiada on zewnętrzny oscylator 16Mhz i na razie trwają testy pod oscyloskopem. Muszę posprawdzać jak pracują timery zliczające czas impulsu sterującego serwa, jak dotychczas wszystko...
Widziałem tą stronę .. właśnie jestem na etapie pracy z Nrf51822 ... do innych celów - Autor wspomniał tam o środowisku arduino - spróbowałem ale poległem - podstawa funkcjonuje od pierwszego kopa - i to miłe, jednak wykorzystanie zasobów jest bardzo słabo udokumentowane, Np. Nie możesz użyć timera RTC1 bo implementacja bibliotek na arduino już go używa...
(at)namok - nie masz racji - mnie się w 99% udawało ustawić rejestry, ale 90% z nich wymagało sprawdzenia czy coś nie gryzie się z bibliotekami Arduino (np. timery z funkcjami millis()). Niestety ale za cenę tego, że nie oglądamy "co jest pod maską" dostajemy gorsze możliwości konfiguracji sprzętu, który mamy.
Nawet głupie machanie pinami to już nie PORTD|= i PORTD&=^ a zwyczajnie PORTD.OUTSET= i PORTD.OUTCLR= ... Do tego dochodzi np. pull-down którego w starszych Atmegach nie ma oraz alternatywne funkcje, których w starszych atmegach również nie ma. Timery zupełnie inaczej się konfiguruje, ADC podobnie, dystrybucja zegara też, uśpienie, przerwania ... mnóstwo...
Nie działa Ci z to z millis bo może źle używasz. Jak masz przez 200ms kręcić kołem to wstawiasz w loop funkcję, która włącza kręcenie kołem i zapisuje czas startu, w kolejnych wywołaniach sprawdza czy już minęło od chwili startu 200ms i ewentualnie wyłącza kręcenie kołem. Jak coś zablokuje loop na np. 20ms to o tyle będzie maksymalny błąd pomiaru, z...
(at)tplewa - nie jest to prawda. Nie ma debuggera. A coś wydajniejszego w cenie arduino to bluepill z STM32F103 czyli jak Marek_Skalski napisał rodzina starsza i na wyginięciu, ale przynajmniej zapoznaje z 32bit MCU i architekturą ARM (ahb, apb, rcc, dma, różnorakie timery i nvic). A po co ci w tych AVR debugger ? Można pisać i bez niego... Do tego...
Były to programy na Windowsa Podn Windę nie odwołujesz się bezpośrednio do układów peryferyjnych. Robisz to za pośrednictwem sterowników. Otwierając COM nie interesuje Cie czy to VCOM na USB, port na PCI itp. Nie konfigurujesz rejestrów układu, np SPI czy I2C. Inaczej było pod DOS. Myślę że dał bym radę zaprogramować zamiennik. Kwestia czasu. Arduino...
Np. , do tego 4x Stepstick A4988. Silniki dobrze jakby dwufazowe były. Upraszcza to sterowanie, sterowniki A4988 dostają tylko sygnał kierunku i impulsy kroku. Do tego można wykorzystać timery Amegi, czyli ustawiasz stan na pinie odpowiadającym za kierunek i timer odlicza "kroki", w tym momencie program może ustawić parametry dla drugiego silnika (...
Rozumiem ze będzie tu potrzebne wykorzystanie millis. Do PWM? Można ale to kiepska metoda. Mała rozdzielczość, kiepska precyzja (duży jitter). W przypadku zawieszenia przerwań (np obsługa 1-Wire przez GPIO), PWM zostaje zatrzymany. Taki PWM to do regulacji kontrastu LCD się nadaje. Praktycznie każdy mikrokontroler ma sprzętowy PWM a AVR każdy (może...
Przecież masz biblioteki TimerOne i TimerThree. Czemu ich nie użyjesz? Ponieważ chcę rozwiązać zaistniały problem :) Poczytałem trochę na innych forach i zauważyłem, że podobny problem występował. Skonfigurowałem jeszcze inne timer, zmieniałem tryby, ale efekt jest ten sam, w przerwanie wchodzi tylko raz. W temacie: http://forum.arduino.cc//index.php?topic...
Mógłbyś rozwiną trochę temat sprzętowego generowania przebiegu? Myślę o użyciu FastPWM. Ustawienie tego z poziomu Arduino nie jest, zdaje się, możliwe. A więc trzeba grzebnąć bliżej sprzętu, po rejestrach, a więc trzeba poczytać datasheeta. :-) Idea jest taka, że należy skonfigurować Timer1 na FastPWM z rejestrem ICR1 jako Top (czyli licznik będzie...
Co do pierwszej części to w 100% tak, co do części drugiej - można to zrobić w Arduino - też możesz sobie konfigurować timery albo za pomocą bibliotek, albo ręcznie, jeśli sama idea środowiska jest dla Ciebie ważna. Teoretycznie można też w środowisku skompilować program w czystym C lub C++. Tak czy siak kwestia w tym, żebyś to robił na timerach, a...
Wtedy urządzenie nie generuje sygnału, tylko wykonuje procedury obsługi LCD (w przerwaniu). Pewnie można by zbudować bardziej ekonomiczne funkcje obsługi wyświetlania, np. oparte o timery bez delay. No ale korzystam tu z wbudowanych bibliotek ARDUINO. Nie wiem dlaczego w przerwaniu obsługujesz wyświetlacz, ale na pewno jego działanie nie może mieć...
Hej (at)And! Do uruchomienia użyłem prawdziwej żywej atmegi8 podpiętej do "portu szeregowego" po USB z FTDI (chiński klon chyba arduino nano). Chciałem być fair i nie zaglądać do środka jako że to miał być BlackBox ;) Co do mojej specjalizacji :D Wszystkie 3 etapy dało się przejść bez jakiejś szczególnej wiedzy na temat elektroniki, assemblera i budowy...
Po co biblioteka obsługująca WS-y blokuje przerwania? Generuje krótkie czasy (1,25us) i pojawienie sie przerwania (typowo 10..20us) skutecznie wszystko psuje. Niby można by pozwolic na przerwania w czasie gdy ustawiony jest poziom niski. Reset WS to 50us ale w praktyce reset interpretują przy 15..20us. Typowo przerwanie tyle trwa więc wszystko na styk...
integra timery atmega8 timery xmega timery
interfejs bosch polonez lenovo sterowniki karta sieciowa kompresor sprężarka klimatyzacji
smart switch lodówka bosch kgn39
Nissan Murano Z51 2011 – schemat podłączenia kamery cofania, piny, zasilanie 6V, AV Control Unit Nissan Murano Z51 2011 TS10 – podłączenie przewodu reverse do 24-pin ekranu, pin 22 różowy