Jun 7 2011

Spannung mit dem 7805 regeln

Als ich mit der Microcontroller-Programmierung anfing, habe ich zuerst auf meinem STK500 programmiert und getestet. Aber nun habe ich ja auch das erste Programm außerhalb des STK500 zum Laufen bekommen. Als ich dann die Grundschaltung aufgebaut hatte, fiel mir auf, dass mein Programm aus irgendwelchen Gründen nicht lief :? . Spannung lag am Microcontroller an(+5V), auch an den einzelnen Pins, aber irgendwie war diese nicht stabil oder genug geglättet. Ich habe diese Spannung von meinem Trafo meiner Modelleisenbahn gezogen. Danach viel mir ein, dass ich die Spannung ja auch zum Testen von meinem STK500 abnehmen kann. Und siehe da, das Programm lief.

Nun habe ich mir eine Schaltung gebaut, die eine stabile und vor allem geglättete +5V Spannung liefert. Diese findet man auch ähnlich im Datenblatt des 78xx Spannungsreglers. Diese Schaltung sollte sich jeder merken, der sich mit Elektrotechnik beschäftigt, da es das 1×1 der Elektrotechnik ist. Man wird diese Schaltung als Elektrotechniker nicht nur einmal zusammenlöten ;) . Es gibt verschiedene Spannungsregler der 78-er Reihe. Die Zahl dahinter, gibt immer die Ausgangsspannung an, bspw.: 5V(7805), 8V(7808), 9V(7809), 12V(7812) und 24V(7824). Die Eingangsspannung muss um ca. 2V höher liegen, da der Spannungsregler auch versorgt werden muss. Man sagt die “optimale” Eingangsspannung des 7805 liegt zwischen 8 und 12 Volt. Bei viel höheren Spannungen wird schon sehr viel Energie in Form von Wärme abgegeben. Falls dies nicht anders möglich ist, muss man einen Kühlkörper an den Spannungsregler anbauen, sodass die Wärme gut abgeleitet werden kann. Bei niedrigerer Eingangsspannung bspw.: 5-7 wird der Spannungsregler keine stabilen 5V regeln können.

Die Schaltung schaut wie folgt aus:

Schaltung für einen Spannungsregler der Reiher 78XX

Spannungsreglerschaltung

Bauteile:

Der Spannungsregler ist dafür da, um, wie der Name schon sagt, die Spannung zu regeln. Dieser regelt die “hohe” Gleichspannung am Eingang zu einer kleineren stabilen Ausgangsspannung herunter. Die Kondensatoren sind dafür da, um die Spannung zu sieben und zu glätten. Es ist sehr wichtig, die Kondensatoren so dicht wie möglich an den Spannungsregler zu schließen, sodass sie auch ihre volle Wirkung entfalten können. Die stabilisierte Spannung kann man dann an Ua abnehmen. Zur Sicherheit kann man noch eine Diode einbauen.

Hoffe es hilft euch, also bei mir hat es wunderbar geklappt und ich habe nun eine stabilisierte Spannung für meinen Microcontroller. :)


Jun 3 2011

Counter 0-255 in C mit dem AVR-GCC Teil 2/2

…wie ja im letzten Artikel versprochen nun die Fortsetzung ;)

Ich habe mir ein LED- und Kohleschicht-Wiederstandssortiment gekauft und kann dies auch jedem, der mit der Elektrotechnik anfängt, oder auch schon dabei ist, empfehlen. Der große Vorteil ist, dass man alles auf einem Blick in einer Kiste hat, was Wiederstände und LEDs angeht ;) . Ich habe mir letztes Jahr 1.5kg Wiederstände gekauft, aber leider ist es immer keine einfache Sache den richtigen Wiederstand aus diesem “Wiederstandsknoll” zu finden.

Um den Microcontroller auf dem Experimentierboard zum Laufen zu bringen, muss man erstmal die Grundschaltung zusammenstecken. Die Grundschaltung besteht lediglich aus einer +5V Gleichspannung, einem 10kOhm Wiederstand ,einem 100nF Kondensator und sieht wie folgt aus:

Grundschaltung Atmega32Nachdem ich diese Schaltung nun zusammengesteckt habe, musste ich noch meine LEDs mit den Vorwiederständen (1kOhm) an die entsprechenden Ausgängen(PB0-PB7) und VCC verbinden. Die Schaltung hat sich nun um 8 LEDs mit jeweils einem Wiederstand erweitert.

Daraufhin habe ich nochmal alle Aus- und Eingänge geprüft, sodass ich sichergehen konnte, dass diese den Zustand haben, welchen ich erwartet haben. Nun war die Schaltung fertig aufgebaut und ich konnte den Zähler starten.
Meine Schaltung auf dem Experimentierboard sieht folgendermaßen aus:

Steckbrett Counter

Nun habe ich auch noch ein Video gemacht, hoffe die Qualität ist diesmal besser:

Wichtig ist dabei immer eine +5V stabilisierte und rauschfreie Gleichspannung zu verwenden. Falls dies nicht der Fall ist, läuft die Schaltung nicht. Wie man sich eine Schaltung baut, die genau diese +5V stabilisierte Gleichspannung liefert, erkläre ich in meinem nächsten Artikel.

Mein nächstes Projekt kommt bestimmt in den nächsten Tagen und ihr werdet es HIER als Erstes erfahren!

 


Mai 31 2011

Counter 0-255 in C mit dem AVR-GCC Teil 1/2

Nun habe ich mich durchgerungen und konnte endlich mal wieder was mit meinen uC´s(Microcontroller) machen. Ich habe mir ein Buch gekauft und hoffe, dass ich in der nächsten Zeit etwas mehr dazu komme. Das Buch heißt AVR-Mikrocontroller in C programmieren(Rezension folgt!). Damals habe ich schonmal etwas mit Atmels gemacht, aber leider dann den Faden verloren. Nun musste ich mir wieder alle Programme zusammensuchen und installieren.

Als erstes musste ich AVR Studio und PonyProg2000 auf meinem neuen Laptop(Windows 7 Prof. 64Bit) installieren, was sich schon als sehr kniffelig rausstellte. Die Programme im Internet zu finden ist die eine Sache, aber auch unterstützt für Win7 und 64Bit ist die andere. Als ich dann  eine Version gefunden habe, die ich installieren konnte, fand ich heraus, dass diese Version meinen Microcontroller nicht unterstützt. Nun habe ich eine Version gefunden, die auch meinen Controller unterstützt AVR Studio 4.18 .

Nachdem alles installiert war, ging es auch schon los. Ich habe mir dann erst mal vorgenommen einen Zähler zu bauen. Das ging auch relativ schnell. Ich habe angefangen mir das AVR-GCC-Tutorial von www.mikrocontroller.net durchzulesen. Damals habe ich schon mal etwas mit C gemacht und somit bin ich damit ziemlich gut zurecht gekommen. Nach ein paar Tests lief auch schon der Zähler mit folgendem Code:

// Counter
#include <avr/io.h>        //1
#include <util/delay.h>    //2
#define F_CPU 1000000l     //3
int main (void)            //4
{
 int i = 0;
 DDRB = 0xFF;              //5
 while(1) {                //6
  for(i = 255; i > 0; i--)
  {
   PORTB = i;              //7
   _delay_loop_2(100000);  //8
  }
  i=255;
  }
 return 1;                  //9
}
  • In der mit 1 markierten Zeile wird eine sogenannte Header-Datei eingebunden. In io.h sind die Registernamen definiert, die im späteren Verlauf genutzt werden.
  • Bei der 2 wird eine Datei eingebunden, die Wartemechanismen enthält.
  • 3 dort wird die Clock Frequenz definiert, wenn diese nicht im Makefile definiert ist.
  • Bei 4 beginnt das eigentliche Programm. Jedes C-Programm beginnt mit den Anweisungen in der Funktion main.
  • 5 Die Anschlüsse eines AVR werden zu einzelne Blöcke zusammengefasst, ein solcher Block wird als Port bezeichnet.  Mit DDRB =0xFF; werden die Anschlüsse des Blocks/Ports B als Ausgänge definiert.
  • In der Zeile 6 wird eine Endlosschleife begonnen, da der Zähler endlos laufen soll.
  • In der mit 7 markierten Zeile werden die Ausgangswerte eingestellt. Man kann einzelne Integer-Werte dem Port zuweisen, aber auch hexadezimale Blöcke wie PortB = 0xFF; . Da F=15(dezimal) bedeutet werden immer 2 Stellen angegeben, da pro Block 8 Anschlüsse vorhanden sind und 4 Bits maximal 15(dezimal) sind.
  • Bei 8 wird eine bestimmte Zeit gewartet. (dafür die importierte Datei)
  • 9 wäre das Programmende. Dieses wird aber nie erreicht, da es in der Endlosschleife verharrt.

Hier noch ein kleines Video in nicht der besten Quali, aber das nächste wird qualitativ besser. ;)

Der nächste Schritt ist nun, den Microcontroller mit 8 LEDs so zu verdrahten, dass auch der Zähler auf meinem Steckbrett läuft. Dazu muss ich mir aber erst mal ein paar einheitliche LEDs bestellen. Dies werde ich in den nächsten Tagen machen. Weitere Erkenntnisse und Bilder folgen im nächsten Artikel … :-)