Innehållsförteckning:

Arduino Mindre kända funktioner: 9 steg
Arduino Mindre kända funktioner: 9 steg

Video: Arduino Mindre kända funktioner: 9 steg

Video: Arduino Mindre kända funktioner: 9 steg
Video: Hur man styr manöverdon med Arduino - Robojax 2024, Juli
Anonim
Arduino Mindre kända funktioner
Arduino Mindre kända funktioner

Detta är mer en lista över inte så ofta nämnda funktioner i Arduino -plattformar som vanligtvis används (t.ex. Uno, Nano). Denna lista bör fungera som en referens när du behöver leta upp dessa funktioner och sprida budskapet.

Titta på koden för att se exempel på alla dessa funktioner eftersom jag använde dem i flera av mina projekt här på instruerbara (t.ex. Arduino 1-tråds display (144 tecken)). Stegen nedan förklarar en funktion var.

Steg 1: Matningsspänning

Arduino kan mäta sin egen matningsspänning på ett indirekt sätt. Genom att mäta den interna referensen med matningsspänningen som övre gränsreferens kan du få förhållandet mellan intern referens och matningsspänning (matningsspänningen fungerar som övre gräns för analog/ADC -avläsning). Som du vet det exakta värdet för den interna spänningsreferensen kan du sedan beräkna matningsspänningen.

För exakta detaljer om hur du gör detta inklusive exempelkod se:

  • Hemlig Arduino voltmeter-Mät batterispänning:
  • Kan Arduino mäta sin egen Vin ?:

Steg 2: Intern temperatur

Vissa Arduino är utrustade med en intern temperatursensor och kan därför mäta sin inre (halvledar) temperatur.

För exakta detaljer om hur du gör detta inklusive exempelkod se:

Intern temperatursensor:

Kan Arduino mäta sin egen Vin ?:

Steg 3: Analog Comparator (Avbrott)

Arduino kan ställa in en analog komparator mellan stift A0 och A1. Så en ger spänningsnivån och den andra kontrolleras för att korsa denna spänning. Ett avbrott höjs beroende på om korsningen är en stigande eller fallande kant (eller båda). Avbrottet kan sedan fångas upp av programvara och agera därefter.

För exakta detaljer om hur du gör detta inklusive exempelkod se:

Analog Comparator Interrupt:

Steg 4: Räknare

Naturligtvis har AVR flera räknare inkluderade. Vanligtvis används de för att ställa in timer för olika frekvenser och höja avbrott vid behov. En annan kan vara mycket gammaldags användning är att använda dem precis som räknare utan ytterligare magi, läs bara värdet när du behöver det (undersökning). En intressant användning av detta kan vara att avstänga knappar t.ex. Konferera till exempel detta inlägg: AVR Exempel T1 -räknare

Steg 5: Fördefinierade konstanter

Det finns några fördefinierade variabler som kan användas för att lägga till version- och sammanställningsinformation till ditt projekt.

För exakta detaljer om hur du gör detta inklusive exempelkod se:

Serial.println (_ DATE_); // sammanställningsdatum

Serial.println (_ TIME_); // sammanställningstid

String stringOne = String (ARDUINO, DEC);

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

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

Serial.println (_ FILE_); // fil sammanställd

dessa kodavsnitt kommer att mata ut dessa data till seriekonsolen.

Steg 6: Behåll variabel i RAM genom återställning

Det är välkänt att Arduino Uno (ATmega328) har intern EEPROM som låter dig bevara värden och inställningar under avstängning och återställa dem vid nästa uppstart. Ett inte så välkänt faktum kan vara att det faktiskt är möjligt att bevara värdet under återställning även i RAM - men värdena går förlorade under strömcykeln - med syntaxen:

osignerad lång variabel_dat_är_behållen _attribut_ ((avsnitt (".noinit")));

Detta gör att du till exempel kan räkna antalet RESET och genom att använda EEPROM också antalet power-ups.

För exakta detaljer om hur du gör detta inklusive exempelkod se:

  • Behåll variabel i ram genom återställning:
  • EEPROM -bibliotek:

Steg 7: Öppna klocksignalen

Arduinos och andra AVR (som ATtiny) har en intern klocka så att du kan köra dem utan att använda en extern kristalloscillator. Samtidigt kan de också ansluta denna signal till utsidan genom att sätta den på en stift (t.ex. PB4). Den knepiga delen här är att du måste byta chips -säkringsbitarna för att aktivera den funktionen och byta säkringsbitar bär alltid risken för att mura chipet.

Du måste aktivera CKOUT -säkringen och det enklaste sättet att göra detta är genom att följa instruktionerna om hur du byter säkringsbitar i AVR Atmega328p - 8bit -mikrokontroller med Arduino.

För exakta detaljer om hur du gör detta inklusive exempelkod se:

  • Tuning ATtiny intern oscillator:
  • Hur man byter säkringsbitar i AVR Atmega328p-8-bitars mikrokontroller med Arduino:

Steg 8: Portens interna struktur för ATmega328P

Genom att känna till portens interna struktur för ATmega328P kan vi gå utöver de vanliga användningsgränserna. Överför avsnittet om kapacitansmätare för intervall 20 pF till 1000 nF för mer information och en schematisk bild av den interna kretsen.

Det enkla exemplet är att använda knappar med digitala portar som inte behöver något motstånd på grund av användningen av internt pull-up-motstånd som visas i Input Pullup Serial Exempel eller den instruerbara Arduino-knappen utan motstånd.

Mer avancerad är användningen av denna kunskap som nämns för att mäta kapaktorer så små som 20 pF och dessutom utan några extra ledningar! För att uppnå denna prestanda använder exemplet den interna/ingångsimpedansen, det interna uppdragningsmotståndet och den lösa kondensatorn. Jämför med Arduino CapacitanceMeter Tutorial som inte kan gå lägre än några nF.

Steg 9: Inbyggd (inbyggd) LED som fotodetektor

Många Arduino-kort har inbyggda eller inbyggda lysdioder som kan styras från kod, t.ex. Uno- eller Nano -korten på stift 13. Genom att lägga till en enda tråd från denna stift till en analog ingångsstift (t.ex. A0) kan vi också använda denna lysdiod som fotodetektor. Detta kan användas på en mängd olika sätt som; använd för att mäta miljöbelysningen, använd LED som knapp, använd LED för dubbelriktad kommunikation (PJON AnalogSampling), etc.

Rekommenderad: