Menü Schließen

UNO-CPU solo

Wer ein UNO-Board mit gesockeltem ATMega328p besitzt, der kann ihn programmieren, heraushebeln und isoliert in einer Schaltung der eigenen Wahl verwenden.

Um das zu realisieren werden folgende Teile für zusammen etwa 10 Euro benötigt:

Die folgende Abbildung zeigt einen derartigen Aufbau, an dem die Programmierung einer Verkehrsampel nachvollzogen werden kann.

Ampelprojekt mit isoliertem ATMega328p
Schaltung des Ampel-Moduls

Mit Strom versorgt wir der ATMega (von links gegen den Uhrzeigersinn gezählt) über die Pins 7 (+5V) und 8 (GND). Diese sind überkreuz verbunden mit den Pins 20 (+5V) und 22 (GND) auf der gegenüberliegenden Seite des ICs. Taktgeber ist ein 16 MHz Kristall, das über Pin 9 und 10 angebunden ist und über zwei Kondensatoren von jeweils 22 pF mit dem Minuspol (GND) in Verbindung steht.

Verdrahtung eines isolierten ATMega328p
Komponenten zur Stromversorgung mit einer 9V Batterie

Mithilfe eines Spannungsreglers (beispielsweise dem L 7805 CV) kann zur Stromversorgung eine 9V Batterie dienen. Der Regler reduziert die Spannung auf 5 V. Der ATmega328P benötigt zwischen 3,8 und 5,5 V, wobei das Maximum nicht überschritten werden sollte.

Statt der der Ampel-Module können natürlich auch einzelne LEDs gesteckt werden. Sie werden hier über die Pins A0, A1 und A2 beziehungsweise D6, D7 und D8 angesteuert. Wie sie auf dem Modul angeordnet sind, zeigt die obige Schemazeichnung.

Programmcode:

void setup()
{
pinMode( 6 , OUTPUT); //Rot 1. Ampel
pinMode( 7 , OUTPUT); //Gelb 1. Ampel
pinMode( 8 , OUTPUT); //Grün 1. Ampel
pinMode( A2 , OUTPUT); //Rot 2. Ampel
pinMode( A1 , OUTPUT); //Gelb 2. Ampel
pinMode( A0 , OUTPUT); //Grün, 2. Ampel
}
void loop()
{
digitalWrite( 6 , HIGH );
digitalWrite( A2 , HIGH );
delay( 5000 );
digitalWrite( 7 , HIGH );
delay( 2000 );
digitalWrite( 6 , LOW );
digitalWrite( 7 , LOW ); 
digitalWrite( 8 , HIGH );
delay( 5000 );
digitalWrite( 8 , LOW );
digitalWrite( 7 , HIGH );
delay( 2000 );
digitalWrite( 7 , LOW );
digitalWrite( 6 , HIGH );
delay( 2000 );
digitalWrite( A1 , HIGH );
delay( 2000 );
digitalWrite( A1 , LOW );
digitalWrite( A2 , LOW);
digitalWrite( A0 , HIGH);
delay( 5000 );
digitalWrite( A0 , LOW );
digitalWrite( A1 , HIGH );
delay( 2000 );
digitalWrite( A1 , LOW);
}

*) Einen fabrikneuen ATMega328p mit einem Bootloader ausstatten:

Wer die Mehrarbeit nicht scheut oder ganz allgemein daran interessiert ist, kann den Bootloader selbst auf einen ATMega328p brennen. Dazu werden zwei Boards benötigt, eins davon muss einen Sockel haben, auf den die zu programmierende CPU gesteckt werden kann. Dabei ist darauf zu achten, dass die runde Kerbe des ATMega vom USB-Anschluss weg zeigt. Dort finden sich auch die zur Programmierung nötigen „ICSP“-Pins.

Hier das Verbindungsschema:

Auf das für die Programmierung vorgesehene Board wird der Sketch „Arduino-ISP“ geladen, das im Menü unter „Beispiele“ zu finden ist:

Zur eigentlichen Programmierung muss unter „Werkzeuge“ als Programmer „Arduino as ISP“ ausgewählt und danach der Befehl „Bootloader brennen“ ausgeführt werden.  

Damit ist der Prozessor für eine normale Verwendung auf einem beliebigen UNO-Board vorbereitet.

Folgekapitel (ATtiny85) >>>