Inhoudsopgave:
- Stap 1: Voedingsspanning
- Stap 2: Interne temperatuur
- Stap 3: Analoge Comparator (Interrupt)
- Stap 4: Teller
- Stap 5: Vooraf gedefinieerde constanten
- Stap 6: Variabele in RAM behouden via reset
- Stap 7: Toegang tot het kloksignaal
- Stap 8: Interne poortstructuur van ATmega328P
- Stap 9: Aan boord (ingebouwde) LED als fotodetector
Video: Arduino minder bekende functies: 9 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Dit is meer een lijst van niet zo vaak genoemde kenmerken van Arduino-platforms die doorgaans worden gebruikt (bijv. Uno, Nano). Deze vermelding moet als referentie dienen wanneer u die functies moet opzoeken en het woord moet verspreiden.
Kijk naar de code om voorbeelden te zien van al deze functies, zoals ik ze in verschillende van mijn projecten hier op instructable heb gebruikt (bijv. Arduino 1-wire Display (144 Chars)). De volgende stappen leggen elk één functie uit.
Stap 1: Voedingsspanning
De Arduino kan op een indirecte manier zijn eigen voedingsspanning meten. Door de interne referentie te meten met de voedingsspanning als bovengrensreferentie, kunt u de verhouding krijgen tussen interne referentie en voedingsspanning (de voedingsspanning fungeert als bovengrens voor de analoge/ADC-uitlezing). Omdat u de exacte waarde van de interne spanningsreferentie kent, kunt u vervolgens de voedingsspanning berekenen.
Voor exacte details over hoe u dit moet doen, inclusief voorbeeldcode, zie:
- Geheime Arduino Voltmeter - Meet batterijspanning:
- Kan Arduino zijn eigen Vin meten?:
Stap 2: Interne temperatuur
Sommige Arduino zijn uitgerust met een interne temperatuursensor en kunnen daardoor hun interne (halfgeleider)temperatuur meten.
Voor exacte details over hoe u dit moet doen, inclusief voorbeeldcode, zie:
Interne temperatuursensor:
Kan Arduino zijn eigen Vin meten?:
Stap 3: Analoge Comparator (Interrupt)
Arduino kan een analoge comparator instellen tussen pin A0 en A1. Dus de ene geeft het spanningsniveau aan en de andere wordt gecontroleerd op een overschrijding van deze spanning. Een interrupt wordt verhoogd afhankelijk van of de kruising een stijgende of dalende flank is (of beide). De interrupt kan dan door software worden opgevangen en dienovereenkomstig worden uitgevoerd.
Voor exacte details over hoe u dit moet doen, inclusief voorbeeldcode, zie:
Analoge vergelijkingsonderbreking:
Stap 4: Teller
Uiteraard heeft de AVR meerdere tellers meegeleverd. Meestal worden ze gebruikt om timers van verschillende frequenties in te stellen en onderbrekingen op te heffen als dat nodig is. Een ander misschien heel ouderwets gebruik is om ze gewoon als tellers te gebruiken zonder enige extra magie, lees gewoon de waarde wanneer je het nodig hebt (poll). Een interessant gebruik hiervan zou kunnen zijn om knoppen te debouncen, b.v. Verleen bijvoorbeeld deze post: AVR Voorbeeld T1 counter
Stap 5: Vooraf gedefinieerde constanten
Er zijn enkele vooraf gedefinieerde variabelen die kunnen worden gebruikt om versie- en compilatie-informatie aan uw project toe te voegen.
Voor exacte details over hoe u dit moet doen, inclusief voorbeeldcode, zie:
Serieel.println(_DATUM_); // compilatiedatum
Serieel.println(_TIME_); // compilatietijd
String stringOne = String (ARDUINO, DEC);
Serial.println(stringOne); // arduino ide-versie
Serial.println(_VERSIE_); // gcc-versie
Serieel.println(_FILE_); // bestand gecompileerd
deze codefragmenten zullen die gegevens naar de seriële console uitvoeren.
Stap 6: Variabele in RAM behouden via reset
Het is bekend dat Arduino Uno (ATmega328) een interne EEPROM heeft waarmee u waarden en instellingen kunt behouden tijdens het uitschakelen en deze bij de volgende keer opstarten kunt herstellen. Een niet zo bekend feit is misschien dat het mogelijk is om de waarde te behouden tijdens het resetten, zelfs in RAM - de waarden gaan echter verloren tijdens de power cycle - met de syntaxis:
unsigned long variable_that_is_preserved _attribute_ ((sectie (".noinit")));
Hiermee kunt u bijvoorbeeld het aantal RESET's tellen en door het gebruik van EEPROM ook het aantal power-ups.
Voor exacte details over hoe u dit moet doen, inclusief voorbeeldcode, zie:
- Variabele in Ram behouden via Reset:
- EEPROM-bibliotheek:
Stap 7: Toegang tot het kloksignaal
Arduino's en andere AVR's (zoals ATtiny) hebben een interne klok waardoor je ze kunt gebruiken zonder een externe kristaloscillator te gebruiken. Bovendien kunnen ze dit signaal tegelijkertijd ook met buiten verbinden door het op een pin (bijvoorbeeld PB4) te plaatsen. Het lastige hier is dat je de fuse-bits van de chips moet veranderen om die functie mogelijk te maken en het veranderen van fuse-bits brengt altijd het risico met zich mee dat de chip wordt gemetseld.
U moet de CKOUT-zekering inschakelen en de gemakkelijkste manier om dit te doen is door de instructie te volgen over het wijzigen van zekeringbits van AVR Atmega328p - 8bit microcontroller met behulp van Arduino.
Voor exacte details over hoe u dit moet doen, inclusief voorbeeldcode, zie:
- Interne ATtiny-oscillator afstemmen:
- Hoe u zekeringbits van AVR Atmega328p - 8bit-microcontroller kunt wijzigen met Arduino:
Stap 8: Interne poortstructuur van ATmega328P
Als we de interne structuur van de poorten van ATmega328P kennen, kunnen we verder gaan dan de standaardgebruikslimieten. Raadpleeg het gedeelte over capaciteitsmeter voor bereik 20 pF tot 1000 nF voor meer details en een schema van het interne circuit.
Het eenvoudige voorbeeld is om knoppen te gebruiken met digitale poorten die geen weerstand nodig hebben vanwege het gebruik van een interne pull-up-weerstand zoals getoond door het Input Pullup Serial Voorbeeld of de instructable Arduino-knop zonder weerstand.
Meer geavanceerd is het gebruik van deze kennis zoals genoemd voor het meten van condensatoren zo klein als 20 pF en bovendien zonder extra bedrading! Om die prestatie te bereiken, maakt het voorbeeld gebruik van de interne/ingangsimpedantie, de interne pull-up-weerstand en de strooicondensator. Vergelijk met de Arduino CapacitanceMeter-zelfstudie die niet lager kan gaan dan een paar nF.
Stap 9: Aan boord (ingebouwde) LED als fotodetector
Veel Arduino-boards hebben ingebouwde of ingebouwde LED's die kunnen worden bestuurd vanuit code, b.v. de Uno- of Nano-kaarten op pin 13. Door een enkele draad van deze pin toe te voegen aan een analoge ingangspin (bijv. A0) kunnen we deze LED ook als fotodetector gebruiken. Dit kan op verschillende manieren worden gebruikt, zoals; gebruik om de omgevingsverlichting te meten, gebruik LED als knop, gebruik LED voor bidirectionele communicatie (PJON AnalogSampling), enz.
Aanbevolen:
Hoe u IOT-functies aan uw projecten kunt toevoegen: 5 stappen
Hoe IOT-functies aan uw projecten toe te voegen: Niets is beter dan een doe-het-zelf-project te maken dat een commercieel product vervangt dat u nuttig vindt. Nou, eigenlijk is er iets beters dan dat. IOT-mogelijkheden toevoegen aan uw project. Als het op automatisering aankomt, raken beginners meestal in paniek
Meer sla kweken in minder ruimte of Sla groeien in de ruimte, (meer of minder). - Ajarnpa
Meer sla kweken in minder ruimte of… Sla groeien in de ruimte, (meer of minder): dit is een professionele inzending voor de Growing Beyond Earth, Maker Contest, ingediend via Instructables. Ik zou niet enthousiaster kunnen zijn om te ontwerpen voor de productie van ruimtegewassen en mijn eerste Instructable te posten. Om te beginnen vroeg de wedstrijd ons om
Arduino UNO (menu's en functies maken): 4 stappen
Arduino UNO (menu's en functies maken): in deze instructable zullen we onderzoeken hoe we menu's kunnen maken, de temperatuur van een TC74A0-sensor kunnen lezen en "waarden" kunnen weergeven (in dit geval mobiele telefoonnummers) op een manier die oneindig is, maar beperkt tot het geheugen van de arduino aan boord. We zullen
Een Instructable Robot Met Veel Functies: 8 Stappen (met Afbeeldingen)
Een Instructable Robot Met Veel Functies: Hallo vrienden, in deze instructable ga ik een fantastische robot introduceren die de volgende taken kan uitvoeren:- Het kan bewegen en de besturing van zijn bewegingen wordt gedaan door Bluetooth2- Het kan schoonmaken als een stofzuiger3- Het kan nummers van Bluetoot afspelen
"Wise Clock 2" (Arduino-gebaseerde wekker met veel extra functies) in elkaar zetten: 6 stappen
"Wise Clock 2" monteren (Arduino-gebaseerde wekker met veel extra functies): Deze tutorial laat zien hoe je de kit voor Wise Clock 2, een open source (hardware en software) project, in elkaar zet. Een complete Wise Clock 2-kit kan hier worden gekocht. Samenvattend, dit is wat Wise Clock 2 kan doen (met de huidige open source software