Innholdsfortegnelse:

Arduino mindre kjente funksjoner: 9 trinn
Arduino mindre kjente funksjoner: 9 trinn

Video: Arduino mindre kjente funksjoner: 9 trinn

Video: Arduino mindre kjente funksjoner: 9 trinn
Video: How to use up to 10 push button switch with 1 Arduino input pin ANPB-V1 2024, November
Anonim
Arduino mindre kjente funksjoner
Arduino mindre kjente funksjoner

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: