Innholdsfortegnelse:
- Trinn 1: Forsyningsspenning
- Trinn 2: Intern temperatur
- Trinn 3: Analog komparator (avbrudd)
- Trinn 4: Teller
- Trinn 5: Forhåndsdefinerte konstanter
- Trinn 6: Behold variabel i RAM gjennom tilbakestilling
- Trinn 7: Få tilgang til klokkesignalet
- Trinn 8: Portens interne struktur av ATmega328P
- Trinn 9: Innebygd (innebygd) LED som fotodetektor
Video: Arduino mindre kjente funksjoner: 9 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Dette er mer en liste over ikke så ofte nevnte funksjoner på Arduino -plattformer som vanligvis brukes (f.eks. Uno, Nano). Denne oppføringen bør fungere som en referanse når du trenger å slå opp disse funksjonene og spre ordet.
Se på koden for å se eksempler på alle funksjonene som jeg brukte dem i flere av mine prosjekter her på instruerbare (f.eks. Arduino 1-wire display (144 tegn)). Trinnene nedenfor forklarer én funksjon hver.
Trinn 1: Forsyningsspenning
Arduino kan måle sin egen forsyningsspenning på en indirekte måte. Ved å måle den interne referansen med forsyningsspenningen som øvre grense referanse, kan du få forholdet mellom intern referanse og forsyningsspenning (forsyningsspenningen fungerer som øvre grense for analog/ADC avlesning). Som du vet den eksakte verdien av den interne spenningsreferansen, kan du deretter beregne forsyningsspenningen.
For nøyaktige detaljer om hvordan du gjør dette, inkludert eksempelkode, se:
- Hemmelig Arduino voltmeter-Mål batterispenning:
- Kan Arduino måle sin egen Vin ?:
Trinn 2: Intern temperatur
Noen Arduino er utstyrt med en intern temperatursensor og kan derfor måle deres indre (halvleder) temperatur.
For nøyaktige detaljer om hvordan du gjør dette, inkludert eksempelkode, se:
Intern temperatursensor:
Kan Arduino måle sin egen Vin ?:
Trinn 3: Analog komparator (avbrudd)
Arduino kan sette opp en analog komparator mellom pin A0 og A1. Så den ene gir spenningsnivået og den andre kontrolleres for kryssing av denne spenningen. Et avbrudd blir hevet avhengig av om krysset er en stigende eller fallende kant (eller begge deler). Avbruddet kan deretter fanges opp av programvare og handle deretter.
For nøyaktige detaljer om hvordan du gjør dette, inkludert eksempelkode, se:
Analog Comparator Interrupt:
Trinn 4: Teller
Selvfølgelig har AVR flere teller inkludert. Vanligvis er de vant til å sette opp timer for forskjellige frekvenser og øke avbrudd ved behov. En annen kan være veldig gammeldags bruk er å bruke dem akkurat som tellere uten ekstra magi, bare les verdien når du trenger den (meningsmåling). En intresst bruk av dette kan være å de-bounce knapper f.eks. Overfør for eksempel dette innlegget: AVR Eksempel T1 -teller
Trinn 5: Forhåndsdefinerte konstanter
Det er noen forhåndsdefinerte variabler som kan brukes til å legge til versjons- og kompilasjonsinformasjon til prosjektet ditt.
For nøyaktige detaljer om hvordan du gjør dette, inkludert eksempelkode, se:
Serial.println (_ DATE_); // samlingsdato
Serial.println (_ TIME_); // kompileringstid
String stringOne = String (ARDUINO, DEC);
Serial.println (stringOne); // arduino ide versjon
Serial.println (_ VERSJON_); // gcc -versjon
Serial.println (_ FILE_); // fil kompilert
disse kodestykkene sender disse dataene til den serielle konsollen.
Trinn 6: Behold variabel i RAM gjennom tilbakestilling
Det er velkjent at Arduino Uno (ATmega328) har intern EEPROM som lar deg bevare verdier og innstillinger under avstengning og gjenopprette dem ved neste oppstart. Et ikke så kjent faktum kan være at det faktisk er mulig å bevare verdien under tilbakestilling, selv i RAM - men verdiene går seg vill under strømsyklusen - med syntaksen:
usignert lang variabel_at_er_bevart _attribute_ ((seksjon (".noinit")));
Dette lar deg for eksempel telle antall RESET og ved å bruke EEPROM også antall power-ups.
For nøyaktige detaljer om hvordan du gjør dette, inkludert eksempelkode, se:
- Behold variabel i ram gjennom tilbakestilling:
- EEPROM -bibliotek:
Trinn 7: Få tilgang til klokkesignalet
Arduinos og andre AVR (som ATtiny) har en intern klokke som lar deg kjøre dem uten å bruke en ekstern krystalloscillator. Samtidig kan de også koble dette signalet til utsiden ved å sette det på en pinne (f.eks. PB4). Den vanskelige delen her er at du må bytte chips -sikringsbitene for å aktivere denne funksjonen og bytte av sikringsbiter bærer alltid risikoen for å mure brikken.
Du må aktivere CKOUT -sikringen, og den enkleste måten å gjøre dette på er ved å følge instruksjonene om hvordan du endrer sikringsbiter i AVR Atmega328p - 8bit mikrokontroller ved hjelp av Arduino.
For nøyaktige detaljer om hvordan du gjør dette, inkludert eksempelkode, se:
- Tuning ATtiny intern oscillator:
- Hvordan bytte sikringsbiter i AVR Atmega328p-8-biters mikrokontroller ved hjelp av Arduino:
Trinn 8: Portens interne struktur av ATmega328P
Å kjenne portens interne struktur til ATmega328P lar oss gå utover de vanlige bruksgrensene. Overfør delen om Kapasitansemåler for område 20 pF til 1000 nF for flere detaljer og en skjematisk oversikt over den interne kretsen.
Det enkle eksemplet er å bruke knapper med digitale porter som ikke trenger noen motstand på grunn av bruk av intern opptrekkmotstand som vist av Input Pullup Serial Eksempel eller den instruerbare Arduino-knappen uten motstand.
Mer avansert er bruken av denne kunnskapen som nevnt for måling av kapaktorer så små som 20 pF og dessuten uten ekstra ledninger! For å oppnå den ytelsen bruker eksemplet den interne/inngangsimpedansen, den interne opptrekksmotstanden og den løse kondensatoren. Sammenlign med Arduino CapacitanceMeter -opplæringen som ikke kan gå lavere enn noen få nF.
Trinn 9: Innebygd (innebygd) LED som fotodetektor
Mange Arduino-plater har innebygde eller innebygde lysdioder som kan styres fra kode, f.eks. Uno- eller Nano -kortene på pinne 13. Ved å legge en enkelt ledning fra denne pinnen til en analog inngangspinne (f.eks. A0) kan vi også bruke denne LED -en som fotodetektor. Dette kan brukes på en rekke forskjellige måter som; bruk for å måle miljøbelysningen, bruk LED som knapp, bruk LED for toveiskommunikasjon (PJON AnalogSampling), etc.
Anbefalt:
RaspberryPi 3/4 utvidelseskort for å legge til ekstra funksjoner i Raspberry Pi: 15 trinn (med bilder)
RaspberryPi 3/4 utvidelseskort for å legge til ekstra funksjoner til Raspberry Pi: vi vet at bringebær pi 3/4 ikke kommer med innebygd ADC (analog til digital omformer) og RTC (sanntidsklokke), så jeg designer en PCB som inneholder 16 kanal 12bit ADC, RTC, SIM7600 4G -modul, trykknapper, reléer, USB -strøm, 5V strømutgang, 12V strøm
Voksende mer salat på mindre plass eller voksende salat i verdensrommet, (mer eller mindre) .: 10 trinn
Voksende mer salat på mindre plass eller … Voksende salat i verdensrommet, (mer eller mindre) .: Dette er en profesjonell innsending til Growing Beyond Earth, Maker Contest, sendt gjennom Instructables. Jeg kunne ikke vært mer begeistret for å designe for produksjon av romfrukter og legge ut min første Instructable.Til å begynne ba konkurransen oss om å
Arduino UNO (lage menyer og funksjoner): 4 trinn
Arduino UNO (lage menyer og funksjoner): I denne instruksen vil vi utforske hvordan vi lager menyer, leser temperaturen fra en TC74A0 -sensor og viser "verdier" (i dette tilfellet mobiltelefonnumre) på en måte som er uendelig, men begrenset til arduinoen om bord i minnet. Vi vil b
Arduino tonegenerator uten bibliotek eller serielle funksjoner (med avbrudd): 10 trinn
Arduino Tone Generator With No Library or Serial Functions (With Interrupts): Dette er ikke noe jeg normalt vil lære om, jeg foretrekker metallarbeidet mitt, men ettersom jeg er elektroteknikkstudent og må ta en klasse på mikrokontrollere ( Embedded Systems Design), jeg tenkte jeg skulle lage en instruks på en av mine sider
Montering av "Wise Clock 2" (Arduino-basert vekkerklokke med mange ekstra funksjoner): 6 trinn
Montering av "Wise Clock 2" (Arduino-basert vekkerklokke med mange ekstra funksjoner): Denne opplæringen viser hvordan du monterer settet til Wise Clock 2, et prosjekt med åpen kildekode (maskinvare og programvare). Et komplett Wise Clock 2 -sett kan kjøpes her. Oppsummert er dette hva Wise Clock 2 kan gjøre (med den nåværende open source softwa