Spisu treści:

Mniej znane funkcje Arduino: 9 kroków
Mniej znane funkcje Arduino: 9 kroków

Wideo: Mniej znane funkcje Arduino: 9 kroków

Wideo: Mniej znane funkcje Arduino: 9 kroków
Wideo: Jak programować Arduino? Instrukcja warunkowa, pętle, typy zmiennych 2024, Listopad
Anonim
Mniej znane funkcje Arduino
Mniej znane funkcje Arduino

Jest to raczej zestawienie nieczęsto wymienianych cech platform Arduino, które są zazwyczaj używane (np. Uno, Nano). Ta aukcja powinna służyć jako odniesienie, gdy chcesz sprawdzić te funkcje i rozpowszechniać informacje.

Spójrz na kod, aby zobaczyć przykłady wszystkich tych funkcji, ponieważ użyłem ich w kilku moich projektach tutaj na instrukcji (np. Wyświetlacz 1-przewodowy Arduino (144 znaków)). Poniższe kroki wyjaśniają po jednej funkcji.

Krok 1: Napięcie zasilania

Arduino może mierzyć własne napięcie zasilania w sposób pośredni. Mierząc wewnętrzne odniesienie z napięciem zasilania jako górną granicą odniesienia, można uzyskać stosunek między wewnętrznym odniesieniem a napięciem zasilania (napięcie zasilania działa jako górna granica dla odczytu analogowego/ADC). Ponieważ znasz dokładną wartość wewnętrznego napięcia odniesienia, możesz obliczyć napięcie zasilania.

Aby uzyskać szczegółowe informacje, jak to zrobić, w tym przykładowy kod, zobacz:

  • Tajny woltomierz Arduino – pomiar napięcia akumulatora:
  • Czy Arduino może zmierzyć własnego Vin?:

Krok 2: Temperatura wewnętrzna

Niektóre Arduino są wyposażone w wewnętrzny czujnik temperatury, dzięki czemu mogą mierzyć swoją wewnętrzną (półprzewodnikową) temperaturę.

Aby uzyskać dokładne informacje, jak to zrobić, w tym przykładowy kod, zobacz:

Wewnętrzny czujnik temperatury:

Czy Arduino może zmierzyć własnego Vin?:

Krok 3: Komparator analogowy (przerwanie)

Arduino może skonfigurować komparator analogowy między pinami A0 i A1. Czyli jeden podaje poziom napięcia, a drugi jest sprawdzany pod kątem przekroczenia tego napięcia. Przerwanie zostaje podniesione w zależności od tego, czy przecięcie jest zboczem narastającym, czy opadającym (lub obydwoma). Przerwanie może być następnie przechwycone przez oprogramowanie i odpowiednio wykonane.

Aby uzyskać dokładne informacje, jak to zrobić, w tym przykładowy kod, zobacz:

Przerwanie komparatora analogowego:

Krok 4: Licznik

Oczywiście AVR zawiera kilka liczników. Zwykle są one używane do ustawiania timera o różnych częstotliwościach i podnoszenia przerwań w razie potrzeby. Innym może być bardzo staromodnym zastosowaniem jest użycie ich jako liczników bez dodatkowej magii, po prostu odczytaj wartość, kiedy jej potrzebujesz (sonda). Ciekawym zastosowaniem tego może być odrzucenie przycisków, np. Przywołaj na przykład ten post: AVR Przykład licznika T1

Krok 5: Predefiniowane stałe

Istnieje kilka predefiniowanych zmiennych, których można użyć do dodania informacji o wersji i kompilacji do projektu.

Aby uzyskać szczegółowe informacje, jak to zrobić, w tym przykładowy kod, zobacz:

Serial.println(_DATA_); // data kompilacji

Serial.println(_TIME_); // czas kompilacji

Ciąg Ciąg Jeden = Ciąg (ARDUINO, DEC);

Serial.println(ciągJeden); // wersja arduino ide

Serial.println(_WERSJA_); // wersja gcc

Serial.println(_PLIK_); // plik skompilowany

te fragmenty kodu wyprowadzą te dane do konsoli szeregowej.

Krok 6: Zachowaj zmienną w pamięci RAM przez zresetowanie

Powszechnie wiadomo, że Arduino Uno (ATmega328) ma wewnętrzną pamięć EEPROM, która pozwala zachować wartości i ustawienia podczas wyłączania zasilania i przywrócić je przy następnym włączeniu. Nie tak dobrze znanym faktem może być to, że faktycznie możliwe jest zachowanie wartości podczas resetowania nawet w pamięci RAM - jednak wartości są tracone podczas cyklu zasilania - ze składnią:

unsigned long variable_that_is_preserved _attribute_ ((sekcja (".noinit")));

Pozwala to np. zliczyć liczbę RESETÓW, a przy użyciu EEPROM także liczbę uruchomień.

Aby uzyskać szczegółowe informacje, jak to zrobić, w tym przykładowy kod, zobacz:

  • Zachowaj zmienną w pamięci RAM poprzez Reset:
  • Biblioteka EEPROM:

Krok 7: Uzyskaj dostęp do sygnału zegara

Arduino i inne AVR (takie jak ATtiny) mają wewnętrzny zegar, dzięki czemu można je uruchomić bez użycia zewnętrznego oscylatora kwarcowego. Ponadto w tym samym czasie są również w stanie podłączyć ten sygnał na zewnątrz, umieszczając go na bolcu (np. PB4). Trudne jest to, że musisz zmienić bity bezpieczników chipów, aby włączyć tę funkcję, a zmiana bitów fuse zawsze wiąże się z ryzykiem zepsucia chipa.

Musisz włączyć bezpiecznik CKOUT, a najprostszym sposobem na to jest postępowanie zgodnie z instrukcją Jak zmienić bity bezpiecznika w AVR Atmega328p - 8-bitowy mikrokontroler za pomocą Arduino.

Aby uzyskać dokładne informacje, jak to zrobić, w tym przykładowy kod, zobacz:

  • Tuning wewnętrzny oscylator ATtiny:
  • Jak zmienić bity bezpiecznika AVR Atmega328p - 8-bitowy mikrokontroler za pomocą Arduino:

Krok 8: Wewnętrzna struktura portu ATmega328P

Znajomość wewnętrznej struktury portów ATmega328P pozwala nam wyjść poza standardowe ograniczenia użytkowania. Więcej szczegółów i schemat obwodu wewnętrznego można znaleźć w rozdziale o mierniku pojemności dla zakresu od 20 pF do 1000 nF.

Prostym przykładem jest użycie przycisków z portami cyfrowymi, które nie wymagają żadnego rezystora ze względu na użycie wewnętrznego rezystora podciągającego, jak pokazano w przykładzie szeregowym Input Pullup lub instruktażowym przycisku Arduino bez rezystora.

Bardziej zaawansowane jest wykorzystanie tej wiedzy, jak wspomniano, do pomiaru kondensatorów tak małych jak 20 pF, a ponadto bez dodatkowego okablowania! Aby osiągnąć tę wydajność, przykład wykorzystuje impedancję wewnętrzną/wejściową, wewnętrzny rezystor podciągający i kondensator rozproszenia. Porównaj z samouczkiem Arduino CapacitanceMeter, który nie może być niższy niż kilka nF.

Krok 9: Wbudowana (wbudowana) dioda LED jako fotodetektor

Wiele płyt Arduino ma wbudowane lub wbudowane diody LED, którymi można sterować za pomocą kodu, np. płytki Uno lub Nano na pinie 13. Dodając jeden przewód z tego pinu do pinu wejścia analogowego (np. A0) możemy również użyć tej diody LED jako fotodetektora. Może to być używane na wiele różnych sposobów, takich jak; użyj do pomiaru oświetlenia otoczenia, użyj diody LED jako przycisku, użyj diody LED do komunikacji dwukierunkowej (PJON AnalogSampling) itp.

Zalecana: