Inhaltsverzeichnis:

Selbstgebautes Arduino-Board - Gunook
Selbstgebautes Arduino-Board - Gunook

Video: Selbstgebautes Arduino-Board - Gunook

Video: Selbstgebautes Arduino-Board - Gunook
Video: CNC-Fräse selbstgebaut #01 Steuerung: Arduino, Estlcam 2024, Juli
Anonim
Selbstgebautes Arduino-Board
Selbstgebautes Arduino-Board

Durch das Entwerfen Ihres eigenen Arduino-Boards lernen Sie einige neue Komponenten und elektronische Schaltungen kennen, einschließlich einiger fortgeschrittener Themen wie Stromversorgung, Timing-Schaltung und die Verwendung von ATmega IC (Integrated Circuit).

Es wird Ihnen in Zukunft helfen, Ihre eigenen Projekte wie Wetterstationen, Hausautomationsschilder usw. zu erstellen.

Der Vorteil des selbstgebauten Arduino ist, dass es einen geringen Energieverbrauch hat und dafür sorgt, dass ein Projekt lange mit einer Batterie laufen kann.

Zusätzlich können Sie das Board erweitern, indem Sie digitale oder analoge Porterweiterungen oder einige Kommunikationsmodule hinzufügen.

Lieferungen

Die Hardware

Um ein minimalistisches Arduino zu bauen, benötigen Sie die folgende Hardware:

1x ATmega328P-PU Mikrocontroller mit Arduino Bootloader

1x 7805 linearer Spannungsregler (5 V Ausgang, 35 V max. Eingang)

1x Steckbrett (ich verwende 830 Pinnwand)

Diverse Anschlussdrähte

1x 16 MHz Quarzoszillator

1x 28-Pin-IC-Buchse

1x 1 μF, 25 V Elektrolytkondensator

1x 100 μF, 25 V Elektrolytkondensator

2x 22 pF, 50 V Keramikkondensatoren

2x 100 nF, 50 V Keramikkondensatoren

2x 330 Ohm Widerstände (R1 und R2)

1x 10 kOhm Widerstand (R3)

2x LEDs Ihrer Wahl (LED1 und LED2)

1x Taster

Optional 2x 6-Pin-Header und 3x 8-Pin-Header

1x PP3-Batterie-Snap

1x 9 V PP3-Batterie

1x FTDI-Programmieradapter

Schritt 1: 7805 Linearer Spannungsregler

7805 Linearer Spannungsregler
7805 Linearer Spannungsregler
7805 Linearer Spannungsregler
7805 Linearer Spannungsregler
7805 Linearer Spannungsregler
7805 Linearer Spannungsregler

Ein linearer Spannungsregler enthält eine einfache Schaltung, die eine Spannung in eine andere umwandelt. Der Regler 7805 kann eine Spannung zwischen 7 und 30 Volt in feste 5 Volt mit einem Strom von bis zu 1 Ampere umwandeln, was perfekt für unser Arduino-Board ist.

Wir beginnen mit der Erstellung der Stromversorgungsschaltung, die einen 7805-Spannungsregler in TO-220-Form und zwei Kondensatoren mit je 100 μF enthält.

Wenn Sie die Vorderseite des 7805-Chips betrachten, ist der linke Pin für die Eingangsspannung, der mittlere Pin ist mit GND verbunden und der rechte Pin ist der 5-V-Ausgangsanschluss. Ich würde empfehlen, einen Kühlkörper zu platzieren, da der 7805-Chip sehr heiß ist, wenn der Stromkreis maximal 1 Ampere aufnimmt (Sie können sich beim Berühren die Fingerspitze verbrennen).

Platzieren Sie einen 100-µF-Kondensator zwischen dem IN des Reglers und Masse und einen 100-µF-Kondensator auf der rechten Schiene zwischen Strom und Masse. Sie müssen aufpassen - der Elektrolytkondensator ist gepolt (der Silberstreifen am Kondensator bedeutet das Massebein) und muss genau nach dem Schaltplan platziert werden.

Fügen Sie Strom- und Erdungskabel hinzu, wo sich Ihr Spannungsregler befinden wird, und verbinden Sie jede Schiene in der Mitte und am rechten Teil der Platine. Auf diese Weise haben wir eine 5-Volt-Stromversorgung von der oberen und unteren Schiene des Steckbretts. Zusätzlich werden wir eine rote LED einbauen, die leuchtet, wenn das Gerät eingeschaltet ist, so dass wir immer sehen können, wann unser Board mit Strom versorgt wird.

Eine LED ist eine Diode und lässt elektrischen Strom nur in eine Richtung fließen. Strom soll in das lange Bein und aus dem kurzen Bein fließen. Die LED-Kathode hat auch eine leicht abgeflachte Seite, die mit dem kurzen, negativen Schenkel der LED korrespondiert.

Unsere Schaltung hat eine 5-Volt-Stromversorgung und eine rote LED hat eine Nennspannung von 1,5 - 2 Volt. Um die Spannung zu reduzieren, müssen wir den Widerstand in Reihe mit der LED schalten, um die Menge des fließenden Stroms zu begrenzen, um die Zerstörung der LED zu verhindern. Ein Teil der Spannung wird vom Widerstand verbraucht und nur ein angemessener Teil davon wird über die LED angelegt. Setzen Sie den Widerstand zwischen dem kurzen Bein der LED und der Reihe mit dem schwarzen Draht auf der rechten Seite des Chips (GND) ein.

Das rote und schwarze Kabel links vom Spannungsregler ist, wo Ihr Netzteil angeschlossen wird. Das rote Kabel ist für die POWER und das schwarze Kabel ist für die Masse (GND).

HINWEIS: Sie können nur eine Stromversorgung zwischen 7-16 V anschließen. Wenn Sie niedriger sind, erhalten Sie keine 5 V aus Ihrem Regler, und eine Spannung von mehr als 17 V beschädigt Ihren Chip. Geeignet ist eine 9-V-Batterie, ein 9-V-DC-Netzteil oder ein 12-V-DC-Netzteil.

Und für einige erweiterte Schaltungen können Sie einen Spannungsregler mit einstellbarer Spannung platzieren. Auf diese Weise können Sie der Platine einige 3,3-V-Sensoren hinzufügen oder einen 9-V-DC-Motor einschalten.

Mehr über lineare Spannungsregler -

www.instructables.com/id/Introduction-to-Linear-Voltage-Regulators

Schritt 2: ATmega328P-PU Mikrocontroller

ATmega328P-PU Mikrocontroller
ATmega328P-PU Mikrocontroller
ATmega328P-PU Mikrocontroller
ATmega328P-PU Mikrocontroller
ATmega328P-PU Mikrocontroller
ATmega328P-PU Mikrocontroller

Um ein Arduino auf dem Steckbrett zu bauen, benötigen Sie einen ATmega328P-PU-Mikrocontroller, der das Gehirn unseres selbstgebauten Arduino-Boards ist. Platzieren Sie es wie in den Schaltplänen gezeigt und seien Sie vorsichtig - die Beine können brechen, wenn Sie sie mit Gewalt eindrücken, oder Sie können einen 28-poligen IC-Sockel verwenden. IC sollte mit einem mondförmigen Schnitt platziert werden, der links vom Steckbrett ausgerichtet ist (Stifte sind von 1 bis 28 gegen den Uhrzeigersinn nummeriert).

HINWEIS: Nicht alle ATmega-ICs enthalten den Arduino-Bootloader (die Software, die es ermöglicht, Skizzen zu interpretieren, die für einen Arduino geschrieben wurden). Wenn Sie nach einem Mikrocontroller für Ihr selbstgebautes Arduino suchen, wählen Sie unbedingt einen aus, der bereits den Bootloader enthält.

Hier ein bisschen Mikrocontroller-Theorie

Ein Mikrocontroller ist ein winziger Computer mit einem Prozessor, der Anweisungen ausführt. Es hat verschiedene Arten von Speicher, um Daten und Anweisungen aus unserem Programm (Skizze) zu speichern; ATmega328P-PU verfügt über drei Arten von Speicher: 32 kB ISP (In-System Programming) Flash-Speicher, in dem Skizzen gespeichert werden, 1 kB EEPROM (elektrisch löschbarer programmierbarer Nur-Lese-Speicher) für die langfristige Datenspeicherung und 2 kB SRAM (statischer Direktzugriffsspeicher)) zum Speichern von Variablen, wenn eine Skizze ausgeführt wird.

HINWEIS: Es ist wichtig zu wissen, dass die Daten im Flash-Speicher und im EEPROM erhalten bleiben, wenn die Stromversorgung des Mikrocontrollers unterbrochen wird.

Der Mikrocontroller verfügt über 13 digitale Universal Input/Output (GPIO)-Leitungen und sechs 10-Bit (Werte zwischen 0 und 1023) Analog-Digital-Converter (ADC) GPIO-Leitungen, um die Spannung an einem Pin in einen digitalen Wert umzuwandeln. Es gibt drei Timer mit zwei 8-Bit-Timern mit Werten zwischen 0 und 255 und einen 16-Bit-Timer mit Werten zwischen 0 und 65535, die von der delay()-Funktion in einem Sketch oder von Pulsweitenmodulation (PWM) verwendet werden..

Es gibt fünf per Software wählbare Energiesparmodi und der Mikrocontroller arbeitet zwischen 1,8 V und 5,5 V. Sie können das Bild als Referenz für das Pin-Layout des ATmega328P-PU verwenden.

Es gibt drei Gruppen von Ports: PB, PC und PD mit 8, 7 bzw. 8 Pins, plus zwei Masse-(GND)-Pins, ein 5V-Pin (VCC) mit Versorgungsspannung (AVCC) und analoger Referenzspannung (AREF.).) Pins für den Analog-Digital-Wandler (ADC).

Schritt 3: ATmega328P-PU-Verbindung

ATmega328P-PU-Verbindung
ATmega328P-PU-Verbindung

Nachdem Sie den IC platziert haben, verbinden Sie die Pins 7, 20 und 21 des ATmega mit der positiven Stromschiene auf dem Steckbrett und die Pins 8 und 23 mit den negativen Stromschienen. Verwenden Sie Überbrückungsdrähte, um die positiven und GND-Stromschienen auf beiden Seiten des zu verbinden Platine, wie in der Abbildung gezeigt.

Pin 7 - Vcc - Digitale Versorgungsspannung

Pin 8 - GND

Pin 22 - GND

Pin 21 - AREF - Analoger Referenzstift für ADC

Pin 20 - AVcc - Versorgungsspannung für den ADC-Wandler. Muss an die Stromversorgung angeschlossen werden, wenn kein ADC verwendet wird, wie in unserem Beispiel. Wenn Sie es in Zukunft verwenden möchten, muss es über einen Tiefpassfilter betrieben werden (um das Rauschen zu reduzieren).

Danach platzieren Sie einen 14-Wege-Header-Pin – er ähnelt den Arduino GPIOs.

Schritt 4: Reset-Taste

Reset-Knopf
Reset-Knopf
Reset-Knopf
Reset-Knopf

Fügen Sie den kleinen Tastschalter hinzu, damit Sie den Arduino zurücksetzen und den Chip für das Hochladen eines neuen Programms vorbereiten können. Ein kurzer kurzer Druck auf diesen Schalter setzt den Chip zurück.

Wir fügen den Reset-Knopf wie in der Abbildung gezeigt in unseren Stromkreis ein. Wenn wir ihn drücken, wird der Stromkreis auf GND verkürzt, indem ein 1kOhm-Widerstand umgangen wird und der ATmega Pin 1 mit dem GND verbunden wird. Fügen Sie dann einen Draht vom unteren linken Bein des Schalters zum RESET-Pin des ATmega-Chips und einen Draht vom oberen linken Bein des Schalters zur Masse hinzu.

Fügen Sie zusätzlich einen 10 k Ohm Pull-Up-Widerstand zu +5 V vom RESET-Pin hinzu, um zu verhindern, dass sich der Chip während des normalen Betriebs selbst zurücksetzt. Dieser Widerstand wird an die 5-Volt-Stromversorgung angeschlossen, wobei Pin 1 auf 5 Volt hochgezogen wird. Und wenn Sie Pin 1 ohne Widerstand mit 0 V verbinden, wird der Chip neu gestartet. Suchen Sie auf dem Neustart-Mikrocontroller nach einem neuen Programm, das hochgeladen wird (beim Einschalten wird das zuletzt gesendete Programm ausgeführt, wenn nichts Neues gesendet wird).

Der Widerstand hat einen vierfarbigen Streifen. Wenn wir Braun=1, Schwarz=0, Orange=3 lesen, erhalten wir die Zahl 103. Der Widerstand in Ohm beginnt bei '10' mit 3 Nullen nach - 10.000 Ohm oder 10 Kiloohm, und der goldene Streifen ist die Toleranz (5 %).

Um unsere Schaltung zu verbessern, können wir einen "Entkopplungskondensator" platzieren. Platzieren Sie einen 100 nF (Nano Farad) Keramikkondensator. Es ist eine kleine Scheibe mit zwei Drähten mit '104-Markierung' und dieser Kondensatortyp ist nicht polarisiert und kann in jeder Ausrichtung platziert werden.

Dieser „Entkopplungskondensator“glättet elektrische Spitzen, sodass das an Pin 1 gesendete Neustartsignal zuverlässig erkannt wird. Die Ziffern 104 zeigen seine Kapazität in Pico Farad in wissenschaftlicher Schreibweise. Die letzte Zahl '4' sagt uns, wie viele Nullen hinzugefügt werden müssen. Die Kapazität beginnt mit „10“und fährt dann mit weiteren 4 Nullen fort – 100.000 Pico-Farad, und da 1000 Pico-Farad 1 Nano-Farad sind, gibt es 100 Nano-Farad (104).

Setzen Sie den Kondensator zwischen das obere linke Bein des Chips ein (Pin 1, gegen den Uhrzeigersinn von der Halbmondform)

Schritt 5: Kristalloszillator

Kristalloszillator
Kristalloszillator
Kristalloszillator
Kristalloszillator

Jetzt machen wir die Uhr für den IC. Es handelt sich um einen 16 Mhz Quarz und zwei Keramikkondensatoren mit je 22pF (Piko Farad). Der Quarzoszillator erzeugt ein elektrisches Signal mit einer sehr genauen Frequenz. In diesem Fall beträgt die Frequenz 16 MHz, was bedeutet, dass der Mikrocontroller 16 Millionen Prozessorbefehle pro Sekunde ausführen kann.

Der 16-MHz-Quarz (Abbildung) ermöglicht dem Arduino die Zeitberechnung, und die Kondensatoren dienen der Glättung der Versorgungsspannung.

Die Quarzkristallbeine sind beide gleich - Sie können es nicht rückwärts verdrahten. Verbinden Sie ein Bein des Quarzes mit Pin 9 auf dem ATmega-Chip und das andere Bein mit Pin 10. Verbinden Sie die Beine eines der 22 pF-Scheibenkondensatoren mit Pin 9 und GND und den anderen Scheibenkondensator mit Pin 10 und GND, wie in Abbildung gezeigt.

Hinweis: Scheibenkondensatoren sind ungepolt und können beliebig eingesetzt werden.

Es ist erwähnenswert, dass die Kabellängen zwischen den 22pF-Kondensatoren gleich lang sein müssen und so nah wie möglich am Controller liegen sollten, um Wechselwirkungen mit anderen Teilen der Schaltung zu vermeiden.

Schritt 6: Hinzufügen von LED zu Pin 13

Hinzufügen einer LED zu Pin 13
Hinzufügen einer LED zu Pin 13
Hinzufügen einer LED zu Pin 13
Hinzufügen einer LED zu Pin 13
Hinzufügen einer LED zu Pin 13
Hinzufügen einer LED zu Pin 13

Jetzt fügen wir die grüne LED (digitaler Pin 13 auf Arduino) hinzu.

Fügen Sie ein langes Bein der LEDs in die Reihe unter dem roten Draht (auf der rechten Seite des Chips - Leistung oder 5 Volt) und das kurze Bein in die erste leere Reihe unter dem Mikrocontroller ein.

Dieser 330 Ohm Widerstand ist in Reihe mit der LED geschaltet und begrenzt den Stromfluss, um eine Zerstörung der LEDs zu verhindern.

Fügen Sie den Widerstand zwischen dem kurzen Bein der LED und der Reihe mit dem schwarzen Draht auf der rechten Seite des Chips (GND oder 0 Volt) ein.

Alle analogen, digitalen und anderen Pins, die auf dem normalen Arduino-Board verfügbar sind, sind auch in unserer Breadboard-Version verfügbar. Sie können den ATmega-Schaltplan und die Pin-Tabelle als Referenz verwenden.

Schritt 7: USB-zu-Seriell-Anschluss

USB-zu-Seriell-Anschluss
USB-zu-Seriell-Anschluss
USB-zu-Seriell-Anschluss
USB-zu-Seriell-Anschluss
USB-zu-Seriell-Anschluss
USB-zu-Seriell-Anschluss
USB-zu-Seriell-Anschluss
USB-zu-Seriell-Anschluss

Der Mikrocontroller ATmega 328P-PU bietet drei Kommunikationsmodi: einen seriell programmierbaren USART (universal synchroner und asynchroner Empfänger-Sender), einen seriellen SPI (Serial Peripheral Interface)-Port und eine serielle Zweidraht-Schnittstelle. USART nimmt Datenbytes und überträgt die einzelnen Bits sequentiell, was Sende- (TX) und Empfangs- (RX) Kommunikationsleitungen erfordert. SPI verwendet vier Kommunikationsleitungen: Master-Out-Slave-In (MOSI), Master-In-Slave-Out (MISO) und Serial Clock (SCK) mit einer separaten Slave-Select-Leitung (SS) für jedes Gerät. Der I2C-Kommunikations-Two Wire Interface (TWI)-Bus verwendet zwei Signalleitungen: serielle Daten (SDA) und serielle Uhr (SCL).

Um unser Board mit Arduino IDE zum Herunterladen einer Skizze an den PC anzuschließen, verwenden wir eine USB-zu-Seriell-UART-Schnittstelle wie den FT232R FTDI.

Achten Sie beim Kauf eines FTDI-Kabels darauf, dass es sich um das 5-V-Modell handelt, da das 3,3-V-Modell nicht richtig funktioniert. Dieses Kabel (in der Abbildung gezeigt) hat an einem Ende einen USB-Stecker und am anderen eine Buchse mit sechs Adern.

Achten Sie beim Anschließen des Kabels darauf, dass die Seite der Buchse mit dem schwarzen Draht mit dem GND-Pin der Header-Pins des Steckbretts verbunden ist. Sobald das Kabel angeschlossen ist, versorgt es die Schaltung auch mit Strom, genau wie ein normales Arduino-Board.

Dann verbinden wir unser FTDI mit unserem selbstgebauten Arduino-Board; Als Referenz können Sie die Tabelle und den Schaltplan verwenden.

Zwischen dem DTR-Pin (Data Terminal Ready) der USB-zu-Seriell-UART-Schnittstelle und dem Mikrocontroller-Reset ist ein 0,1μF-Elektrolytkondensator angeschlossen, der den Mikrocontroller zurücksetzt, um sich mit dem USB-zu-Seriell-Interface zu synchronisieren.

HINWEIS: Ein cleverer Teil ist, dass der RX-Pin des Mikrocontrollers mit dem TX des USB-zu-Seriell-Adapters verbunden werden muss und das gleiche mit dem TX eines Geräts zum RX des anderen.

Der CTS-Pin (Clear to Send) an der USB-zu-Seriell-UART-Schnittstelle ist nicht mit dem Mikrocontroller verbunden.

Um einen Sketch auf den Mikrocontroller in der Arduino IDE herunterzuladen, wählen Sie im Menü Tools ➤ Port den entsprechenden Kommunikations-Port (COM) und im Menü Tools ➤ Board wählen Sie Arduino/Genuino Uno. Die Skizze wird in der Arduino IDE kompiliert und dann mit dem USB zur seriellen UART-Schnittstelle auf den Mikrocontroller geladen. Wenn der Sketch heruntergeladen wird, flackern die grünen und roten LEDs der USB-zu-Seriell-UART-Schnittstelle TXD und RXD.

Die USB-zu-Seriell-UART-Schnittstelle kann entfernt und eine 5V-Stromversorgung an den Mikrocontroller angeschlossen werden. Eine LED und ein 220-kΩ-Widerstand sind an den Mikrocontroller-Pin 19 angeschlossen, der dem Arduino-Pin 13 entspricht, um die Blinkskizze auszuführen.

Schritt 8: Sketch hochladen oder Bootloader installieren

Sketch hochladen oder Bootloader installieren
Sketch hochladen oder Bootloader installieren
Sketch hochladen oder Bootloader installieren
Sketch hochladen oder Bootloader installieren

Wenn Sie keinen USB-zu-Seriell-Konverter haben, können Sie einen anderen Arduino (in meinem Fall Arduino UNO) verwenden, um einen Sketch oder Bootloader auf das selbstgebaute Board hochzuladen.

Die ATmega238P-PU-Mikrocontroller benötigen einen Bootloader zum Hochladen und Ausführen von Skizzen von der Arduino-IDE; Wenn der Mikrocontroller mit Strom versorgt wird, bestimmt der Bootloader, ob eine neue Skizze hochgeladen wird, und lädt dann die Skizze in den Speicher des Mikrocontrollers. Wenn Sie die ATmega328P-PU ohne Bootloader haben, können Sie den Bootloader über die SPI-Kommunikation zwischen zwei Boards hochladen.

So laden Sie einen Bootloader auf den ATmega IC hoch.

Beginnen wir zunächst mit der Konfiguration unseres Arduino UNO als ISP. Dies geschieht, weil Sie möchten, dass das Arduino UNO den Sketch auf den ATmega IC hochlädt und nicht sich selbst.

Schritt 1: Konfigurieren unseres Arduino UNO als ISP

Schließen Sie den ATmega IC nicht an, während der folgende Upload läuft.

  • Schließen Sie das Arduino an einen PC an
  • Öffnen Sie die Arduino-IDE
  • Wählen Sie das entsprechende Board (Tools > Board > Arduino UNO) und den COM-Port (Tools > Port > COM?)
  • Öffnen > Beispiele > ArduinoISP
  • Skizze hochladen

Danach können Sie Ihr eigenes Board mit dem Arduino UNO verbinden, indem Sie der Schaltung folgen, wie im Schaltplan gezeigt. Zu diesem Zeitpunkt ist es nicht erforderlich, Ihr eigenes Board mit Strom zu versorgen, da das Arduino die erforderliche Leistung liefern würde.

Schritt 2: Hochladen einer Skizze oder eines Bootloaders

Wenn alles verbunden ist, öffnen Sie die IDE aus dem Ordner, den Sie gerade erstellt haben (die Kopie).

  • Wählen Sie Arduino328 aus Tools > Board
  • Wählen Sie Arduino als ISP aus Extras > Programmierer
  • Wählen Sie Bootloader brennen

Nach einem erfolgreichen Brennen erhalten Sie ein "Done Burning Bootloader".

Der Bootloader wird nun auf den Mikrocontroller geladen, der nach dem Ändern des COM-Ports im Menü Tools ➤ Port bereit ist, einen Sketch zu empfangen.

Empfohlen: