Innehållsförteckning:
- Steg 1: Matningsspänning
- Steg 2: Intern temperatur
- Steg 3: Analog Comparator (Avbrott)
- Steg 4: Räknare
- Steg 5: Fördefinierade konstanter
- Steg 6: Behåll variabel i RAM genom återställning
- Steg 7: Öppna klocksignalen
- Steg 8: Portens interna struktur för ATmega328P
- Steg 9: Inbyggd (inbyggd) LED som fotodetektor
Video: Arduino Mindre kända funktioner: 9 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
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:
RaspberryPi 3/4 förlängningskort för att lägga till extra funktioner i Raspberry Pi: 15 steg (med bilder)
RaspberryPi 3/4 förlängningskort för att lägga till extra funktioner i Raspberry Pi: vi vet att hallon pi 3/4 inte levereras med inbyggd ADC (analog till digital omvandlare) och RTC (realtidsklocka) så jag designar ett kretskort som innehåller 16 kanal 12bit ADC, RTC, SIM7600 4G -modul, tryckknappar, reläer, USB -strömavbrott, 5V -strömavbrott, 12V -ström
Uppgradera DIY Mini DSO till ett riktigt oscilloskop med fantastiska funktioner: 10 steg (med bilder)
Uppgradera DIY Mini DSO till ett verkligt oscilloskop med fantastiska funktioner: Förra gången delade jag hur jag gör en Mini DSO med MCU.För att veta hur man bygger det steg för steg, se min tidigare instruerbara: https: //www.instructables. com/id/Make-Your-Own-Osc … Eftersom många människor är intresserade av det här projektet spenderade jag lite tid
Odla mer sallad på mindre utrymme eller växa sallad i rymden, (mer eller mindre) .: 10 steg
Växande mer sallad på mindre utrymme eller … växande sallad i rymden, (mer eller mindre) .: Detta är en professionell underkastelse till Growing Beyond Earth, Maker Contest, som skickas in via Instructables. Jag kunde inte vara mer upphetsad över att planera för produktion av rymdgrödor och lägga upp min första instruktör. För att börja bad tävlingen oss att
Arduino UNO (skapa menyer och funktioner): 4 steg
Arduino UNO (skapa menyer och funktioner): I denna instruktion kommer vi att utforska hur man skapar menyer, läsa temperaturen från en TC74A0 -sensor och visa "värden" (i detta fall mobiltelefonnummer) på ett sätt som är oändligt, men begränsat till arduino's on board memory.We will b
Arduino tongenerator utan bibliotek eller seriella funktioner (med avbrott): 10 steg
Arduino Tone Generator With No Library or Serial Functions (With Interrupts): Det här är inte något jag normalt skulle göra instruktioner om, jag föredrar mitt metallarbete, men eftersom jag är elingenjör och måste gå en klass om mikrokontroller ( Embedded Systems Design), jag trodde att jag skulle göra en instruerbar på en av mina sidor