Der Arduino ist eigentlich nichts anderes als ein Atmega µContoller (beim Uno ein Atmega328) dem man in ein kompatibles Stecksystem gebaut und mit einer komfortablen Programmierumgebung versehen hat.
Da Atmega nicht direkt an einer USB Schnittstelle funktioniert wurde dem Bord noch ein Atmega16u verpasst der die USB Schnittstelle händelt.

Im Atemga328  ist eine Bootsoftware installiert die die Software über die serielle Schnittstelle lädt.  Wer die Programmierumgebung nicht benötigt kann auch über die ISP Schnittstelle programmieren. Der Bootloader lässt sich auch entfernen dann hat man noch mehr Speicher zur Verfügung es ist dann aber kein Arduino mehr.

Installation des Bootloader...  in kürze.

 

Arduino Selbstbau auf Lochraster.

Man braucht nur ein paar Teile.
Der Aufbau ist in 3 Schritten beschrieben. Grundschaltung, IO, und Betriebspannung. Wer die 3,3V nicht benötigt und oder fertig programmierte Chips einsetzt kann noch einfacher bauen.

  

Lochrasterplatine

1 Quarz 16Mhz

2 Keramikkondensatoren 22pf 50V

1 10kOhm 1/4 Watt

2 Kondensatoren 100nf 63V (0,1µf)

1 Pinheader  female 40pol.

1 IC Sockel 24pol.

1 Atmega328p

1 Kleinsttaster

   

 1 DC Einbaubuchse

 4 Dioden 1N4007

 1 Spannungsregler 5V

 1 LM317K für 3,3V
 1 Elko 22 - 100µf

 1 Widerstand 330Ohm

 1 Widerstand 470 Ohm

 1 Widerstand 150 Ohm
 1 LED Grün

 1 Wannenstecker 10pol.

 

 

Arduino Selbstbau auf Lochraster

Platine und Pinheader zuschneiden und verlöten.  Die Bauteile montieren und wie im Bild anschliessen. Die Pinheader sind nicht teilbar. Beim teilen geht immer ein Anschluss kaputt.  Ich habe die Platine bewusst länger gelassen, weil vorn noch ein paar Teile draufkommen, die höher sind und die drüberliegenden Shields stören.

 

 

 

Selbstbau Arduino IO Verkabelung

Dieses Bild zeigt die Anschlüsse der IO-Pins. Mann könnte auch noch die Anschlüsseanlog 4 und 5 mit den Anschlüssen oben Links verbinden. Das und der doppelte 5V Anschluss ist die eigenliche Änderung zum Arduino R3. Das hat man gemacht um Shields auch für andere Arduino-Platinen kompatibel bauen zu können.

Wer wie die meisten die 3,3V nicht braucht kann jetzt zB. Eine Buchse einbauen und die Schaltung über ein stabilisiertes Netzteil betreiben.

 

 

Spannungsversorgung

 

Ganz einfach mit einem stabilisierten
Netzteil.

Aduino basteln von Johannes Krumm

Hier kann man mit einem 9-15VNetzteil rein.
Es ist eine Gleichrichtung und ein  5V Regler verbaut.

 Ardunionachbau mit 5V Spanungsversorgung

Durch die Dioden ist der Eingang gegen Verpolung geschützt. Es kann auch eine Wechselspannung eingespeist werden.                                                            

Hier mit 3,3V Erweiterung wird nur selten gebraucht.

Arduino Nachbau mit 5V und 3,3 Volt Spannungsversorgung.

Der Widerstand links vom Regler hat 330Ohm der daneben 470. Die Spannung beträgt ca. 3,1V. Das funktioniert und ist getestet. Wer genau 3,3V haben will muss mit Hilfe der Datenblätter rechnen und andere Widerstände nehmen. Es gibt auch Regler für 3,3V, wenn ich die getestet habe werde ich die Schaltung ändern.

Programmierung,

ganz einfach über einen vorhandenen Arduino und dann den Chip umstecken.

Oder per FTDI Adapter an Arduino. Das geht aber nur wenn ein Bootloader installiert ist. Die von mir gelieferten Bausätze haben einen.

Bootloader installieren und auch programmieren geht auch mit dem USBasp von fischl.de USBasp Eigenbau

Dieses Programmiergerät habe ich nach der Anleitung von Herrn Fischl gebaut.
Es funktioniert. Für Newcommer ist aber das Problem mit dem Huhn und dem Ei da. Man benötigt ein Programmiergerät um das Programmiergerät nachzubauen. Es gibt ganz einfache Kabel die man an den Paralellport des PC´anschliessen kann. Ich rate davon ab weil es immer weniger PC´s mit diesem Port gibt und auch Software die das unterstützt wird immer seltener.

Herr Fischl bietet einen auch fertig programmierten Bausatz an.

Um ohne Bootloader die Arduinosoftware zu programmieren, muss unter Tools der USBasp ausgewählt werden und statt auf Upload dann auf Upload mit Programmer klicken
Ideal wenn man andere Atmegas flashen möchte wie Atmega 85 oder 16 oder 32.

 

Selbstbauarduino mit ISP Anschluss

Dieses Bild zeigt die Verkabelung für den ISP  (In System Programmer). Den Resetknopf hatte ich auf den anderen Bildern vergessen.
Über den ISP-Anschluss kann man den Bootloader brennen oder den Arduino, der ja eigentlich ein Atmega328p ist in einer ander Programmierumgebung flashen.

 

Bootloader installieren und Fusebits setzen.

Bei einem  neuen Atmega ist werkseitig der interne Oszilator auf, glaub ich 2Mhz eingestellt. Die Anschlüsse für den Quarz können noch als IO Pins genutz werden. 16Mhz oder auch genau Oszillatorfrequenzen bekommt man nur mit einem Quarz hin.  Dazu muss die Konfiguration des Chips über die Fusebits geändert werden.
Um einen Bootload noch zu instllieren und vor überschreiben zu schützen sind weiteren Änderungen nötig.

Hier der AVR-Dude und eine Batchdatei zum download. Es ist das Programmiergerät von Fisch eingetragen.

Während der Installation muss der Quarz angeschlossen sein. Hinterher läuft der CHip nicht mehr ohne Quarz.

Hier die fertige Zeile zum setzen der Fuse und Lockbits :
avrdude -p m328p -c USBasp -U hfuse:w:0xda:m -U lfuse:w:0xff:m -U efuse:w:0x05:m -U lock:w:0x0f:m

Für die jüngeren, die den Umgang mit Kommandozeilen nicht mehr kennen gibt es für den AVR-Dude zusätzliche noch eine grafische Benutzeroberfläche. Das ist der Burn-O-mat. Hier downloaden.

 

Fensterkontakte überwachen.

In den Beispielen ist ein Programm das einen Schalter am Digitalpin abfragt. Ich habe es etwas erweitert. Szenario alle Fenster einer Wohnung sollen überwacht werden. Beim öffnen der Wohnungstür leuchtet ein Led wenn ein Fenster oder beide Fenster auf sind.
Tür und Fenster sind mit Umschaltontakten versehen die bei geschlossene Fenster auf 0 Volt liegen. Bei offenen Fenster oder Tür werden über 10kOhm 5 Volt auf den Digitalpin gelegt. Wenn ein oder beide Fenster offen sind passiert nichts erst wenn die Tür geöffnet wird und eins oder beide Fenster offen sind wird in diesem Beispiel LED13 ( auf Arduino Uno bereits vorhanden) eingeschaltet.Kontakte

 

Hier das Programm, wer es verstanden hat kann es mühelos auf mehr Fenster erweitern:

Die Kommentare habe ich nocht nicht angepasst.

Statt Schaltern kann man zum testen auf dem Steckbrett auch einfach Kabel umstecken.

/*
Fensterüberwachung
 
 Ein Led wird eingeschaltet wenn schalter Dor und Schalter Fenster1 oder Fenster2 auf 5V liegen.
 
 
 The circuit:
 
 * 10K resistor attached to pin 2 from ground
 
 * Hinweis: auf den meisten Arduinos ist bereiz ein  LED auf der Platine mit Pin 13 verbunden.
 
 
 
 
 

modified by http://pc-rentner.de
 */

// constants won't change. They're used here to
// set pin numbers:
const int fenster1 = 2;     // the number of the pushbutton pin
const int fenster2 = 3;     // the number of the pushbutton pin
const int dor = 11;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin

// variables will change:
int buttonState1 = 0;         // variable for reading the pushbutton status
int buttonState2 = 0;
int buttonState6 = 0;         // Türkontakt
void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);      
  // initialize the pushbutton pin as an input:
  pinMode(fenster1, INPUT);
  pinMode(fenster2, INPUT);
}

void loop(){
  // read the state of the pushbutton value:
  buttonState1 = digitalRead(fenster1);
   buttonState2 = digitalRead(fenster2);
buttonState6 = digitalRead(dor);
  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState6 == HIGH and buttonState1 == HIGH or buttonState2 == HIGH) {     
    // turn LED on:    
    digitalWrite(ledPin, HIGH);  
  }
  else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
  }
}

Login Form