Taula de continguts:

Funcions Arduino menys conegudes: 9 passos
Funcions Arduino menys conegudes: 9 passos

Vídeo: Funcions Arduino menys conegudes: 9 passos

Vídeo: Funcions Arduino menys conegudes: 9 passos
Vídeo: CS50 2014 - Week 7 2024, De novembre
Anonim
Funcions Arduino menys conegudes
Funcions Arduino menys conegudes

Aquesta és més una llista de les funcions no tan esmentades de les plataformes Arduino que s’utilitzen habitualment (per exemple, Uno, Nano). Aquest llistat hauria d’actuar com a referència sempre que hàgiu de buscar aquestes funcions i fer-ne difusió.

Mireu el codi per veure exemples de totes aquestes funcions, ja que les he fet servir en diversos dels meus projectes aquí en format instructiu (per exemple, Arduino 1-wire Display (144 Chars)). Els passos següents expliquen una característica cadascun.

Pas 1: tensió de subministrament

L'Arduino pot mesurar la seva pròpia tensió d'alimentació d'una manera indirecta. Mesurant la referència interna amb la tensió d'alimentació com a referència límit superior podeu obtenir la relació entre la referència interna i la tensió d'alimentació (la tensió d'alimentació que actua com a límit superior per a la lectura analògica / ADC). Com ja sabeu el valor exacte de la referència de tensió interna, podeu calcular la tensió d'alimentació.

Per obtenir detalls exactes sobre com fer-ho, inclòs el codi d'exemple, vegeu:

  • Voltímetre secret Arduino: mesura el voltatge de la bateria:
  • Pot Arduino mesurar el seu propi Vin ?:

Pas 2: temperatura interna

Alguns Arduino estan equipats amb un sensor de temperatura intern i, per tant, poden mesurar la seva temperatura interna (semicoductor).

Per obtenir detalls exactes sobre com fer-ho, inclòs el codi d'exemple, vegeu:

Sensor de temperatura intern:

Pot Arduino mesurar el seu propi Vin ?:

Pas 3: comparador analògic (interrupció)

Arduino pot configurar un comparador analògic entre els pins A0 i A1. Per tant, un dóna el nivell de tensió i l’altre comprova si hi ha un creuament d’aquest voltatge. Es produeix una interrupció en funció de si la cruïlla és una vora ascendent o descendent (o ambdues coses). El programari pot detectar la interrupció i actuar en conseqüència.

Per obtenir detalls exactes sobre com fer-ho, inclòs el codi d'exemple, vegeu:

Interrupció del comparador analògic:

Pas 4: comptador

Per descomptat, els AVR tenen diversos comptadors inclosos. Normalment s’utilitzen per configurar el temporitzador de diverses freqüències i augmentar les interrupcions en cas de necessitat. Un altre ús molt passat a la moda és utilitzar-los com a comptadors sense cap màgia addicional, només heu de llegir el valor quan el necessiteu (enquesta). Un ús intressant d’aquest podria ser el de rebotar botons, p. Confereix, per exemple, aquest missatge: comptador d'exemple AVR T1

Pas 5: constants predefinides

Hi ha algunes variables predefinides que es poden utilitzar per afegir informació de versió i recopilació al vostre projecte.

Per obtenir detalls exactes sobre com fer-ho, inclòs el codi d'exemple, vegeu:

Serial.println (_ DATA_); // data de compilació

Serial.println (_ TIME_); // temps de compilació

String stringOne = String (ARDUINO, DEC);

Serial.println (stringOne); // versió ide arduino

Serial.println (_ VERSIÓ_); // versió gcc

Serial.println (_ FITXER_); // arxiu compilat

aquests fragments de codi enviaran aquestes dades a la consola sèrie.

Pas 6: conservar la variable a la memòria RAM mitjançant el restabliment

És ben sabut que Arduino Uno (ATmega328) té una EEPROM interna que us permet conservar els valors i els paràmetres durant l’apagat i restaurar-los al pròxim engegat. Un fet no tan conegut podria ser que en realitat és possible preservar el valor durant el restabliment fins i tot a la memòria RAM (tot i que els valors es perden durant el cicle d’alimentació) amb la sintaxi:

variable sense signar llarga que es conserva _atribut_ ((secció (".noinit")));

Això us permet, per exemple, comptar el nombre de RESETs i, mitjançant EEPROM, també el nombre d’engegades.

Per obtenir detalls exactes sobre com fer-ho, inclòs el codi d'exemple, vegeu:

  • Conserva la variable a Ram mitjançant el restabliment:
  • Biblioteca EEPROM:

Pas 7: accediu al senyal de rellotge

Els Arduinos i altres AVR (com ATtiny) tenen un rellotge intern que us permet executar-los sense utilitzar un oscil·lador de cristall extern. A més, al mateix temps també poden connectar aquest senyal a l'exterior posant-lo en un pin (per exemple, PB4). El més complicat aquí és que heu de canviar els bits de fusible dels xips per habilitar aquesta característica i canviar els bits de fusible sempre comporta el risc de tapar el xip.

Heu d’habilitar el fusible CKOUT i la manera més senzilla de fer-ho és seguint les instruccions sobre Com canviar els fusibles dels microcontroladors AVR Atmega328p - 8bit mitjançant Arduino.

Per obtenir detalls exactes sobre com fer-ho, inclòs el codi d'exemple, vegeu:

  • Sintonització de l’oscil·lador intern ATtiny: https://becomingmaker.com/tuning-attiny-oscillator …
  • Com canviar els fusibles de microcontrolador AVR Atmega328p - 8 bits mitjançant Arduino:

Pas 8: estructura interna del port de l'ATmega328P

Conèixer l’estructura interna dels ports de l’ATmega328P ens permet superar els límits d’ús estàndard. Conferiu la secció sobre el mesurador de capacitat per a un rang de 20 pF a 1000 nF per obtenir més detalls i un esquema del circuit intern.

L'exemple senzill és utilitzar botons amb ports digitals que no necessiten cap resistència a causa de l'ús de resistència de tracció interna, tal com es mostra a l'Exemple de sèrie d'entrada d'entrada o al botó Arduino que no té resistència.

Més avançat és l’ús d’aquest coneixement, tal com s’esmenta per mesurar capactors de fins a 20 pF i, a més, sense cap cablejat addicional. Per tal d’aconseguir aquest rendiment, l’exemple fa ús de la impedància interna / d’entrada, de la resistència de tracció interna i del condensador perdut. Compareu amb el tutorial Arduino CapacitanceMeter que no pot baixar d’uns quants nF.

Pas 9: LED integrat (incorporat) com a fotodetector

Moltes plaques Arduino tenen LED integrats o incorporats que es poden controlar des del codi, per exemple. les plaques Uno o Nano del pin 13. En afegir un cable únic d’aquest pin a un pin d’entrada analògica (per exemple, A0), també podem utilitzar aquest LED com a fotodetector. Això es pot utilitzar de diverses maneres, com ara; utilitzeu-lo per mesurar la il·luminació ambiental, utilitzeu el LED com a botó, utilitzeu el LED per a la comunicació bidireccional (PJON AnalogSampling), etc.

Recomanat: