Indholdsfortegnelse:

Arduino Mindre kendte funktioner: 9 trin
Arduino Mindre kendte funktioner: 9 trin

Video: Arduino Mindre kendte funktioner: 9 trin

Video: Arduino Mindre kendte funktioner: 9 trin
Video: Как управлять приводом с помощью Arduino - Robojax 2024, Juli
Anonim
Arduino mindre kendte funktioner
Arduino mindre kendte funktioner

Dette er mere en liste over ikke så ofte nævnte funktioner på Arduino -platforme, der typisk bruges (f.eks. Uno, Nano). Denne fortegnelse bør fungere som en reference, når du har brug for at slå disse funktioner op og sprede budskabet.

Se på koden for at se eksempler på alle disse funktioner, da jeg brugte dem i flere af mine projekter her på instruerbare (f.eks. Arduino 1-wire display (144 tegn)). Følgende trin forklarer hver en funktion.

Trin 1: Forsyningsspænding

Arduinoen kan måle sin egen forsyningsspænding på en indirekte måde. Ved at måle den interne reference med forsyningsspændingen som øvre grænsehenvisning kan du få forholdet mellem intern reference og forsyningsspænding (forsyningsspændingen fungerer som øvre grænse for analog/ADC -aflæsningen). Som du kender den nøjagtige værdi af den interne spændingsreference, kan du derefter beregne forsyningsspændingen.

For nøjagtige detaljer om, hvordan du gør dette inklusive eksempelkode, se:

  • Hemmeligt Arduino voltmeter-Mål batterispænding:
  • Kan Arduino måle sin egen Vin ?:

Trin 2: Intern temperatur

Nogle Arduino er udstyret med en intern temperatursensor og kan derfor måle deres interne (halvleder) temperatur.

For nøjagtige detaljer om, hvordan du gør dette inklusive eksempelkode, se:

Intern temperatursensor:

Kan Arduino måle sin egen Vin ?:

Trin 3: Analog komparator (afbrydelse)

Arduino kan opsætte en analog komparator mellem pin A0 og A1. Så den ene giver spændingsniveauet, og den anden kontrolleres for en krydsning af denne spænding. En afbrydelse hæves afhængigt af om krydset er en stigende eller faldende kant (eller begge dele). Afbrydelsen kan derefter fanges af software og handle i overensstemmelse hermed.

For nøjagtige detaljer om, hvordan du gør dette inklusive eksempelkode, se:

Analog Comparator Interrupt:

Trin 4: Tæller

AVR har selvfølgelig flere tællere inkluderet. Normalt bruges de til at indstille timer for forskellige frekvenser og øge afbrydelser efter behov. En anden kan være meget gammeldags brug er at bruge dem lige som tællere uden yderligere magi, bare læs værdien, når du har brug for det (meningsmåling). En interresant brug af dette kunne være at de-bounce knapper f.eks. Overfør f.eks. Dette indlæg: AVR Eksempel T1 -tæller

Trin 5: Foruddefinerede konstanter

Der er nogle foruddefinerede variabler, der kan bruges til at tilføje version og kompilationsoplysninger til dit projekt.

For nøjagtige detaljer om, hvordan du gør dette inklusive eksempelkode, se:

Serial.println (_ DATE_); // kompilationsdato

Serial.println (_ TIME_); // kompileringstid

String stringOne = String (ARDUINO, DEC);

Serial.println (stringOne); // arduino ide version

Serial.println (_ VERSION_); // gcc version

Serial.println (_ FILE_); // fil udarbejdet

disse kodestykker sender disse data til den serielle konsol.

Trin 6: Behold variabel i RAM gennem nulstilling

Det er velkendt, at Arduino Uno (ATmega328) har intern EEPROM, der giver dig mulighed for at bevare værdier og indstillinger under slukning og gendanne dem ved den næste opstart. Et ikke så kendt faktum kan være, at det faktisk er muligt at bevare værdien under nulstilling, selv i RAM - dog går værdierne tabt under strømcyklus - med syntaksen:

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

Dette giver dig f.eks. Mulighed for at tælle antallet af RESET'er og ved hjælp af EEPROM også antallet af power-ups.

For nøjagtige detaljer om, hvordan du gør dette inklusive eksempelkode, se:

  • Behold variabel i Ram gennem nulstilling:
  • EEPROM -bibliotek:

Trin 7: Få adgang til urets signal

Arduinos og andre AVR (som ATtiny) har et internt ur, der giver dig mulighed for at køre dem uden at bruge en ekstern krystaloscillator. Samtidig er de også i stand til at forbinde dette signal til ydersiden ved at sætte det på en stift (f.eks. PB4). Den vanskelige del her er, at du er nødt til at ændre chips -sikringsbitene for at aktivere denne funktion, og skift af sikringsbits bærer altid risikoen for at mure chippen.

Du skal aktivere CKOUT -sikringen, og den nemmeste måde at gøre dette på er ved at følge instruktionerne i Sådan ændres sikringsbits i AVR Atmega328p - 8bit mikrokontroller ved hjælp af Arduino.

For nøjagtige detaljer om, hvordan du gør dette inklusive eksempelkode, se:

  • Tuning ATtiny intern oscillator:
  • Sådan ændres sikringsbits i AVR Atmega328p-8bit mikrokontroller ved hjælp af Arduino:

Trin 8: Portens interne struktur af ATmega328P

At kende havnenes interne struktur i ATmega328P giver os mulighed for at gå ud over de normale anvendelsesgrænser. Overfør afsnittet om kapacitansmåler for område 20 pF til 1000 nF for flere detaljer og en skematisk oversigt over det interne kredsløb.

Det enkle eksempel er at bruge knapper med digitale porte, der ikke har brug for nogen modstand på grund af brugen af intern pull-up-modstand som vist ved Input Pullup Serial-eksempel eller den instruerbare Arduino-knap uden modstand.

Mere avanceret er brugen af denne viden som nævnt til måling af kapacatorer helt ned til 20 pF og desuden uden yderligere ledninger! For at opnå denne ydelse gør eksemplet brug af den interne/inputimpedans, den interne pull-up-modstand og den omstrejfende kondensator. Sammenlign med Arduino CapacitanceMeter Tutorial, som ikke kan gå lavere end et par nF.

Trin 9: Indbygget (indbygget) LED som fotodetektor

Mange Arduino-tavler har indbyggede eller indbyggede lysdioder, der kan styres fra kode, f.eks. Uno- eller Nano -kortene på pin 13. Ved at tilføje en enkelt ledning fra denne pin til en analog input -pin (f.eks. A0) kan vi også bruge denne LED som fotodetektor. Dette kan bruges på en række forskellige måder som; brug til at måle miljøbelysningen, brug LED som knap, brug LED til tovejskommunikation (PJON AnalogSampling) osv.

Anbefalede: