MENÜ English Ukrainian Russisch Startseite

Kostenlose technische Bibliothek für Bastler und Profis Kostenlose technische Bibliothek


ENZYKLOPÄDIE DER FUNKELEKTRONIK UND ELEKTROTECHNIK
Kostenlose Bibliothek / Schemata von radioelektronischen und elektrischen Geräten

Arduino. Operationen des analogen Ein-/Ausgangs funktionieren mit einem Ton. Enzyklopädie der Funkelektronik und Elektrotechnik

Kostenlose technische Bibliothek

Lexikon der Funkelektronik und Elektrotechnik / Funkamateur-Designer

Kommentare zum Artikel Kommentare zum Artikel

Obwohl digitale Eingabe-Ausgabe-Operationen die Lösung einer Vielzahl von Problemen ermöglichen, sind das Vorhandensein eines integrierten Analog-Digital-Wandlers (ADC) im Mikrocontroller der Arduino-Karte und die Möglichkeit, analoge Signale mithilfe der Pulsweitenmodulation auszugeben ( PWM) sorgen für die Arbeit mit analogen Sensoren und Aktoren aller Art und beeinflussen das Objekt proportional zum Steuersignal.

Streng genommen können im Ausgabemodus alle Arduino-Portleitungen nur diskrete Signale übertragen, die nur zwei Zustände haben. Der Mikrocontroller ist jedoch in der Lage, diese Zustände sehr schnell zu ändern und Rechteckimpulse zu erzeugen. Wenn diese Impulse an ein Gerät mit Trägheitseigenschaften angelegt werden, verhält es sich so, als wäre die ihm zugeführte Spannung konstant, gleich dem Durchschnittswert des Impulses und ändert sich gleichmäßig und nicht in Sprüngen zwischen hoch und niedrig logische Ebenen.

Im PWM-Modus erzeugt der Port ein Impulssignal mit konstanter Frequenz und variablem Tastverhältnis (dies ist das Verhältnis der Impulswiederholungsperiode zu ihrer Dauer). Anstelle des Tastverhältnisses arbeiten sie oft mit dessen Umkehrwert – dem Tastverhältnis, das von 0 (keine Impulse) bis 100 % (Impulse folgen, ineinander übergehen, ohne Pausen) geändert werden kann. Obwohl die Ausgangsspannung zu jedem Zeitpunkt einem hohen oder niedrigen Logikpegel entspricht, ist ihr Durchschnittswert daher proportional zum Arbeitszyklus. Wenn Sie an diesen Ausgang ein normales Multimeter anschließen, zeigt es diesen Wert an (natürlich, wenn die Impulsfrequenz hoch genug ist).

In Arduino UNO können die Ausgänge D3, D5, D6, D9, D10 und D11 im PWM-Modus betrieben werden. Sie sind auf der Tafel meist mit „~“-Zeichen oder den Abkürzungen „PWM“ gekennzeichnet. Es ist zu beachten, dass Arduino-Boards anderer Modifikationen möglicherweise über mehr oder weniger solche Ausgänge verfügen.

Im einfachsten Fall kann mittels PWM die Helligkeit einer LED gesteuert werden. Dieses Gerät ist praktisch trägheitsfrei, aber das menschliche Sehvermögen verfügt über eine ausreichende Trägheit, sodass eine Folge schneller LED-Blitze als kontinuierliches Leuchten wahrgenommen wird, dessen Helligkeit vom Füllfaktor abhängt.

Diskrete Ausgänge, die PWM erzeugen können, sind standardmäßig für die Verwendung dieses Modus konfiguriert. Daher ist es nicht erforderlich, die Funktion pinMode() aufzurufen, um sie in diesem Modus zu betreiben. Um das Tastverhältnis eines PWM-Signals einzustellen, gibt es die Standardfunktion analogWrite(N, M), wobei N die Pin-Nummer und M eine Zahl ist, die proportional zum erforderlichen Tastverhältnis ist. Er muss im Bereich von 0 bis 255 liegen, wobei 0 einem Tastverhältnis von Null (konstanter Low-Pegel am Ausgang) und 255 - 100 % Tastverhältnis (konstanter High-Pegel am Ausgang) entspricht. Zeitdiagramme der Ausgangsspannung bei bestimmten Werten von M und dementsprechend das Kurzschluss-Tastverhältnis sind in Abb. dargestellt. 1.

Arduino. Analoge E/A-Operationen, Audiooperationen
Reis. 1. Zeitdiagramme der Ausgangsspannung

Betrachten Sie zum Beispiel die in der Tabelle angegebene. 1 Programm, das die Helligkeit der an den Digitalausgang D9 angeschlossenen LED schrittweise erhöht und dann schrittweise verringert. Es basiert auf dem Standardbeispiel 3.AnalogFading, das mit der Arduino IDE geliefert wird. Die Aufzählung der Puls-Tastverhältnis-Werte wird hier mithilfe der bereits in [1] diskutierten for-Schleifenoperatoren umgesetzt.

Tabelle 1.

Arduino. Analoge E/A-Operationen, Audiooperationen

Um analoge Signale von externen Geräten im Arduino zu empfangen, sind die Eingänge A0-A5 vorgesehen, die standardmäßig auf den dafür erforderlichen Zustand eingestellt sind, sodass keine zusätzliche Initialisierung erforderlich ist. Der im Arduino UNO eingebaute ADC generiert 10-Bit-Binärcodes und wandelt die Eingangsspannung, die im Bereich von 0 bis +5 V liegt, in eine Ganzzahl von 0 bis 1023 (210-1) um.

Um das Konvertierungsergebnis auszulesen, verwenden Sie die Funktion analogRead(N), wobei N die Nummer des Analogeingangs ist.

An die analogen Eingänge des Arduino können Sie eine Vielzahl von Sensoren anschließen, deren Ausgangsspannung proportional zum Messwert ist (variable Widerstände, Thermistoren, Fotowiderstände usw.). Allerdings ist zu beachten, dass am Analogeingang nur Spannungen von 0 bis +5 V anliegen können. Liegt die Ausgangsspannung des Sensors in einem anderen Bereich oder weist sie eine negative Polarität auf, muss das Signal zunächst in den vorgegebenen Bereich gebracht werden Intervall. Der Analogeingang wird mit einer Rate von weniger als 10 kHz abgefragt [2], was für die Analyse einiger sich schnell ändernder Signale möglicherweise nicht ausreicht.

Durch das Vorhandensein analoger Eingänge können Sie Arduino in ein einfaches digitales Voltmeter verwandeln, das Gleichspannung von 0 bis +5 V misst und das Messergebnis an den Computer überträgt. Laden Sie dazu einfach das in der Tabelle angegebene Programm in Arduino. 2.

Tabelle 2

Arduino. Analoge E/A-Operationen, Audiooperationen

Bitte beachten Sie, dass im Programm die Referenz-ADC-Spannung Uref (in Millivolt) und der Umrechnungsfaktor des ADC-Ausgabecodes in Spannung Ku als Konstanten angegeben sind. Der Wert des Koeffizienten wird berechnet, indem die gegebene Referenzspannung durch 1023 geteilt wird. Der Koeffizient ist normalerweise gebrochen, daher ist die Ki-Konstante vom Typ Float (Gleitkommazahl). Die Uref-Konstante hat denselben Typ, um den Koeffizienten korrekt zu berechnen. Da die rechte Seite der Formel nur Konstanten enthält, wird der Koeffizient nicht vom Mikrocontroller bei der Ausführung des Programms berechnet, sondern vom Compiler selbst bei der Übersetzung.

All dies ermöglicht es Ihnen, die Genauigkeit des Voltmeters zu erhöhen, indem Sie mit einem Multimeter den genauen Wert der Referenzspannung am Uref-Pin des Arduino-Boards messen und ihn in das Programm schreiben und ihn der Uref-Konstante zuweisen. Weitere Möglichkeiten zur Verbesserung der Genauigkeit der Analog-Digital-Umwandlung finden Sie in [3, 4].

Wenn das betreffende Programm ausgeführt wird, blinkt die TX-LED auf der Platine und signalisiert damit die Übertragung von Informationen über die serielle Schnittstelle. Die RX-LED leuchtet nicht, da der Computer nichts zurücksendet. Das eingebaute Arduino IDE-Terminal zeigt die empfangenen Informationen an (Abb. 2) – die Ergebnisse der Spannungsmessung einer galvanischen 3332-Batterie.

Arduino. Analoge E/A-Operationen, Audiooperationen
Reis. 2. Programmfenster

Arduino kann nicht nur Licht-, sondern auch Tonsignale liefern. Dazu müssen Sie an einen seiner Ausgänge einen Piezo-Schallgeber, zum Beispiel ZP-1, anschließen (Abb. 3).

Arduino. Analoge E/A-Operationen, Audiooperationen
Reis. 3. Anschließen eines Piezo-Schallgebers

Um mit Ton zu arbeiten, steht eine spezielle Funktion zur Verfügung: ton(N, F, T), wobei N die Pin-Nummer ist, an der rechteckige Impulse erzeugt werden; F – Schallfrequenz, Hz; T – Tondauer, ms. Der letzte Parameter ist optional. Wenn es nicht vorhanden ist, ist der Ton kontinuierlich. Um es auszuschalten, steht die Funktion noTone(N) zur Verfügung.

Natürlich kann man den piezokeramischen Schallgeber kaum als hochwertiges Wiedergabegerät bezeichnen und das vom Mikrocontroller erzeugte Signal hat eine rechteckige Form, allerdings ermöglicht die Nutzung dieser Funktionen das Abspielen einfacher Melodien. Ein Beispiel finden Sie in der Tabelle. 3. Dies ist ein leicht modifiziertes Beispielprogramm 02.Digital oneMelody, enthalten in der Arduino IDE. Da es umständlich ist, die Frequenz jeder Note einer Melodie manuell festzulegen, wird die Datei pitches.h mit der #include-Direktive im Header des Programms angehängt. Dieser Vorgang entspricht dem Einfügen des vollständigen Textes dieser Datei in das Programm. In diesem Fall enthält es eine Liste mit den Namen der spielbaren Noten und deren Frequenzen.

Tabelle 3

Arduino. Analoge E/A-Operationen, Audiooperationen

Der Schallgeber muss an Ausgang D8 angeschlossen werden.

Für ein Programm ist eine Melodie eine Folge von Konstanten desselben Typs (Frequenzwerte), die praktischerweise in einem Array zusammengefasst sind – einer nummerierten Liste von Elementen desselben Typs. Wenn Sie ein Array deklarieren, müssen Sie entweder alle seine Elemente auflisten oder deren Gesamtzahl angeben. Bitte beachten Sie, dass die Nummerierung von Array-Elementen immer bei Null beginnt.

Im betrachteten Beispiel werden zwei Arrays verwendet: int melody[] enthält die Namen der Melodienoten, int note Durations[] – ihre Dauer in Millisekunden. Um auf ein Array-Element zu verweisen, geben Sie dessen Namen mit einer in eckigen Klammern eingeschlossenen Seriennummer an. Um die Anzahl der Noten in einer Melodie einfach ändern zu können, wird sie mithilfe der Funktionen sizeof(V) berechnet, die die Anzahl der von ihrem Argument (Variable oder Array davon) belegten Bytes im Speicher des Mikrocontrollers zurückgeben. In diesem Fall belegt das Melodie-Array 16 Bytes und die Länge seiner int-Elemente beträgt zwei Bytes. Daher erhält die Note-Variable den Wert 8 und gibt an, wie oft der Körper der for-Schleife wiederholt wird, wobei die Noten eine nach der anderen abgespielt werden.

Wenn Sie mehr als eine Note zum Array melody[] hinzufügen, ändert sich der Notenwert entsprechend. Sie müssen nur daran denken, das Array „noteDurations[]“ mit der Dauer dieser Noten hinzuzufügen.

Da die Melodie nur einmal ausgeführt wird, sind alle notwendigen Operationen in der Funktion setup() untergebracht.

Zur erneuten Ausführung müssen Sie den Mikrocontroller in seinen ursprünglichen Zustand zurücksetzen, indem Sie die RESET-Taste auf der Arduino-Platine drücken

Die im Artikel besprochenen Programme für Arduino können von ftp://ftp.radio.ru/pub/2016/09/aninout.zip heruntergeladen werden.

Literatur

  1. Lekomtsev D. Arduino. Digitale Ein-/Ausgabeoperationen. - Radio, 2016, Nr. 8, S. 51-54.
  2. Analoge Messungen mit Arduino. - URL: robotosha.ru/arduino/analog-messungen-arduino.html.
  3. Arduino-Sprachreferenz. Analoge E/A – analogReference(). - URL: arduino.cc/en/Reference/AnalogReference.
  4. analogReference()-Funktion. - URL: arduino.ru/Reference/AnalogReference.

Autor: D. Lekomtsev

Siehe andere Artikel Abschnitt Funkamateur-Designer.

Lesen und Schreiben nützlich Kommentare zu diesem Artikel.

<< Zurück

Neueste Nachrichten aus Wissenschaft und Technik, neue Elektronik:

Alkoholgehalt von warmem Bier 07.05.2024

Bier, eines der häufigsten alkoholischen Getränke, hat einen ganz eigenen Geschmack, der sich je nach Temperatur des Konsums verändern kann. Eine neue Studie eines internationalen Wissenschaftlerteams hat herausgefunden, dass die Biertemperatur einen erheblichen Einfluss auf die Wahrnehmung des alkoholischen Geschmacks hat. Die vom Materialwissenschaftler Lei Jiang geleitete Studie ergab, dass Ethanol- und Wassermoleküle bei unterschiedlichen Temperaturen unterschiedliche Arten von Clustern bilden, was sich auf die Wahrnehmung des alkoholischen Geschmacks auswirkt. Bei niedrigen Temperaturen bilden sich eher pyramidenartige Cluster, wodurch die Schärfe des „Ethanol“-Geschmacks abnimmt und das Getränk weniger alkoholisch schmeckt. Im Gegenteil, mit steigender Temperatur werden die Cluster kettenförmiger, was zu einem ausgeprägteren alkoholischen Geschmack führt. Dies erklärt, warum sich der Geschmack einiger alkoholischer Getränke, wie z. B. Baijiu, je nach Temperatur ändern kann. Die Erkenntnisse eröffnen Getränkeherstellern neue Perspektiven, ... >>

Hauptrisikofaktor für Spielsucht 07.05.2024

Computerspiele werden bei Teenagern zu einer immer beliebteren Unterhaltungsform, die damit verbundene Gefahr einer Spielsucht bleibt jedoch ein erhebliches Problem. Amerikanische Wissenschaftler führten eine Studie durch, um die Hauptfaktoren zu ermitteln, die zu dieser Sucht beitragen, und um Empfehlungen für ihre Vorbeugung abzugeben. Über einen Zeitraum von sechs Jahren wurden 385 Teenager beobachtet, um herauszufinden, welche Faktoren sie für eine Spielsucht prädisponieren könnten. Die Ergebnisse zeigten, dass 90 % der Studienteilnehmer nicht von einer Sucht bedroht waren, während 10 % spielsüchtig wurden. Es stellte sich heraus, dass der Schlüsselfaktor für die Entstehung einer Spielsucht ein geringes Maß an prosozialem Verhalten ist. Jugendliche mit einem geringen Maß an prosozialem Verhalten zeigen kein Interesse an der Hilfe und Unterstützung anderer, was zu einem Verlust des Kontakts zur realen Welt und einer zunehmenden Abhängigkeit von der virtuellen Realität durch Computerspiele führen kann. Basierend auf diesen Ergebnissen, Wissenschaftler ... >>

Verkehrslärm verzögert das Wachstum der Küken 06.05.2024

Die Geräusche, die uns in modernen Städten umgeben, werden immer durchdringender. Allerdings denken nur wenige Menschen darüber nach, welche Auswirkungen dieser Lärm auf die Tierwelt hat, insbesondere auf so empfindliche Tiere wie Küken, die noch nicht aus ihren Eiern geschlüpft sind. Aktuelle Forschungsergebnisse bringen Licht in diese Frage und weisen auf schwerwiegende Folgen für ihre Entwicklung und ihr Überleben hin. Wissenschaftler haben herausgefunden, dass der Verkehrslärm bei Zebraküken zu ernsthaften Entwicklungsstörungen führen kann. Experimente haben gezeigt, dass Lärmbelästigung das Schlüpfen der Küken erheblich verzögern kann und die schlüpfenden Küken mit einer Reihe gesundheitsfördernder Probleme konfrontiert sind. Die Forscher fanden außerdem heraus, dass die negativen Auswirkungen der Lärmbelästigung auch auf die erwachsenen Vögel übergreifen. Reduzierte Fortpflanzungschancen und verringerte Fruchtbarkeit weisen auf die langfristigen Auswirkungen von Verkehrslärm auf die Tierwelt hin. Die Studienergebnisse unterstreichen den Bedarf ... >>

Zufällige Neuigkeiten aus dem Archiv

BlueNRG-1 ist eine neue Single-Chip-Bluetooth Low Energy-Lösung 31.07.2016

Mit dem BlueNRG-1 System-on-Chip von STMicroelectronics können Sie ein komplettes Gerät basierend auf einem einzigen Chip mit Unterstützung für die Bluetooh Low Energy-Technologie erstellen. Der Chip ist extrem stromsparend und bietet 100 kB Flash-Speicher für Benutzeranwendungen, die auf einem Cortex-M0-Kern mit geringem Stromverbrauch ausgeführt werden.

Das BlueNRG-1 wurde für die wachsenden Märkte für Bluetooth Low Energy entwickelt, darunter Einzelhandel, Wearables, Smart-Home-Geräte sowie Automobil-, Industrie- und medizinische Anwendungen. Die Unterstützung der neuesten Bluetooth Low Energy-Spezifikation Version 4.2 gewährleistet erweiterte Datensicherheit und Datenschutz.

Die Fähigkeit des BlueNRG-1, schnell zwischen Energiespar- und Aktivmodus zu wechseln, verlängert die Batterielebensdauer von Monaten auf Jahre. Darüber hinaus wird die Ausgangsleistung des Chips auf +8 dBm erhöht, um auch bei starken Störungen im 2,4-GHz-Band eine klare und zuverlässige Kommunikation zu gewährleisten.

Zu den neuen BlueNRG-1-Funktionen gehört ein dedizierter digitaler Mikrofoneingang, der die Unterstützung von Sprachanwendungen und den Betrieb bei Temperaturen von bis zu 105 °C vereinfacht, was für Anwendungen wie intelligente Beleuchtung und Automobilelektronik von entscheidender Bedeutung ist. Das BlueNRG-1 wird in zwei Gehäusetypen erhältlich sein – 5 mm x 5 mm QFN-32 (BlueNRG-132) und 2,7 mm x 2,6 mm WLCSP-34 (BlueNRG-134).

BlueNRG-1-Funktionen:

System-on-a-Chip-32-MHz-ARM-Cortex-M0-SoC;
Speicher: 160 kB Flash und 24 kB RAM;
Arbeiten Sie im Master- und Slave-Modus;
Richtfunkbudget bis zu 96 dB;
Genaue RSSI-Messwerte für die Energieverwaltung;
Schnell aufwachen und schlafen gehen;
Balun, um die Anzahl der LC-Komponenten zu reduzieren;
10-Bit-ADC, SPI, 2 x I2C, UART und bis zu 15 GPIOs;
Eingebauter DC/DC-Abwärtswandler;
Maximale Stromaufnahme 8,2 mA (@ 0 dBm, 3.0 V);
Strom 1 uA im Schlafmodus (aktiver BLE-Stack);
Betriebsspannung von 1,7 bis 3,6 V.

Die Bluetooth-Low-Energy-Technologie ist ideal für batteriebetriebene Smart-Sensoren, Indoor-Ortungsbaken, schlüssellose Zugangssysteme, Fernbedienungen und Fahrzeug-Tracker. Die Lieferungen von Bluetooth Low Energy IoT-Produkten werden voraussichtlich bis 34 um 2021 % auf 1,4 Milliarden Einheiten steigen (laut ABI Research).

Die Verbreitung der BLE-Technologie für das Internet der Dinge wird durch die weit verbreitete Einführung von BLE-kompatiblen Tablets und Smartphones erleichtert, die eine bequeme Benutzeroberfläche für die Interaktion mit Bluetooth Low Energy-Geräten bieten.

Weitere interessante Neuigkeiten:

▪ WD Purple 6 TB Festplatten

▪ Das interessanteste Sportspiel

▪ Elektrischer Zerstörer der Zukunft

▪ Die Überreste von Plankton erzählen vom alten Klima

▪ Künstliche organische Neuronen

News-Feed von Wissenschaft und Technologie, neue Elektronik

 

Interessante Materialien der Freien Technischen Bibliothek:

▪ Abschnitt der Website Für einen Anfänger-Funkamateur. Artikelauswahl

▪ Artikel Zivilrecht. Teil II. Krippe

▪ Artikel Wann wurden Windspiele zum ersten Mal hergestellt? Ausführliche Antwort

▪ Artikel Kranfahrer. Standardanweisung zum Arbeitsschutz

▪ Artikel Die Wirkung von elektrischem Strom auf eine Person. Enzyklopädie der Funkelektronik und Elektrotechnik

▪ Artikel Surround-Sound-Kopfhörer. Enzyklopädie der Funkelektronik und Elektrotechnik

Hinterlasse deinen Kommentar zu diesem Artikel:

Name:


E-Mail optional):


Kommentar:





Alle Sprachen dieser Seite

Startseite | Bibliothek | Artikel | Sitemap | Site-Überprüfungen

www.diagramm.com.ua

www.diagramm.com.ua
2000-2024