Das folgende Anschlußschema dürfte für erste Steckbrettaufgaben sinnvoll sein (noch kein Quarz, keine Peripherie, nur Signatur abfragen, Fuses >>abfragen<< !!noch nicht umsetzen!!, evtl. Code flashen - aber ohne Peripherie .... :-/ ).
Code:// === Grundlegende Initialisierungen der Hardware, Portdefinition ATMega168/328 // xx ADC7 - nur TQFP *) // xx ADC6 - nur TQFP *) // PCINT14,/RESET,PC6 1 28 PC5,ADC5,SCL,PCINT13 // PCINT16,RxD,PD0 2 27 PC4,ADC4,SDA,PCINT12 // PCINT17,TxD,PD1 3 26 PC3,ADC3,PCINT11 // PCINT18,INT0,PD2 4 25 PC2,ADC2,PCINT10 // PCINT19,OC2B,INT1,PD3 5 24 PC1,ADC1,PCINT9 // PCINT20,XCK,T0,PD4 6 23 PC0,ADC0,PCINT8 // VCC 7 22 GND // GND 8 21 AREF // PCINT6,;XTAL1,TOSC1,PB6 9 20 AVCC // PCINT7,XTAL2,TOSC2,PB7 10 19 PB5,SCK,PCINT5 // PCINT21,OC0B,T1,PD5 11 18 PB4,MISO,PCINT4 // PCINT22,OC0A,AIN0,PD6 12 17 PB3,MOSI,OC2,OC2A,PCINT3 // PCINT23,AIN1,PD7 13 16 PB2,/SS,OC1B,PCINT2 // PCINT0,CLKO,ICP1,PB0 14 15 PB1,OC1A,PCINT1 // --------------------==========----------------------- = // Vorgesehene/belegte Anschlüsse am ATMega328-Steckbrett // ================== ==== // /RESET, PC6 1 E E 28 PC5, - - // PD0 2 E E 27 PC4, - - // PD1___3 E E 26__PC3, - - // PD2 4 E E 25 PC2, - - // PD3 5 E E 24 PC1, - - // PD4___6 E E 23__PC0, - - // Vcc Netzteil, VCC 7 22 GND, GND Programmer + Netzteil //GND Programmer+Netzteil,GND 8 21 AREF // PB6___9 E 20__AVCC - // PB7 10 E E 19 PB5, SCK - // PD5 11 E E 18 PB4, MISO - // PD6__12 E E 17__PB3, MOSI - // PD7 13 E E 16 PB2, - - // PB0 14 E E 15 PB1, - - // ============================================================================== // Ports+Pins als Ein-(0) oder Ausgänge (1) konfigurieren, Pull Ups (1) aktivieren // A = Ausgang, E = Eingang ohne , EU = Eingang MIT PullUp // ============================================================================== // *) Bei TQFP anderer Pinout/andere Pinnummern
Ciao sagt der JoeamBerg
Es geht!!!
Sorry war am Ende mein Fehler. Hab das Kabel jetzt mal durchgeprüft, das ist irgendwie gedreht im Stecker, musste demnach das ganze im Ziel ein Mal die Seiten tauschen.
jetzt kanns hoffentlich losgehen, hab zwar noch nichts entwickelt, aber zumindest die Statusmeldung vom AVRDude sieht jetzt nice aus.
Hey,
Na wessen Fehler denn sonst ...Sorry war am Ende mein Fehler.
Dann viel Spass und bis zum nächsten Problem ...
Gruß
Malte
Glückwunsch, schön dass es läuft! Hoffentlich wars nicht mein Fehler, dass ich das im Foto falsch interpretiert habe (eigentlich habe ich mehrmals und sorgfältig hingesehen).Es geht!!! ... Sorry war am Ende mein Fehler ... ist irgendwie gedreht im Stecker ...
Ohne Dir jetzt zuviel dreinreden zu wollen: für weiter Arbeiten wäre dann beispielsweise so etwas sinnvoll. Taste - als Schließer gegen GND (nur zum Beispiel) auf PD7, bei mir habe ich bei 328ern gerne an PB0 meinen Boardtimer - Timer0, der alle Sekunden eine LED toggelt - das ist dann der Heartbeat, oft habe ich an PB1 ne IR-LED mit 36 kHz - ein moduliertes Signal mit der ein Sensor für Hinderniserkennung betrieben werden kann. Alles nur Vorschläge . . .... jetzt kanns hoffentlich losgehen, hab zwar noch nichts entwickelt ...
Und natürlich könntest Du bei Gelegenheit dann vom internen Oszillator umsteigen auf Quarz.Code:// ============================================================================== // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = // GND 8 21 AREF // PB6___9 A 20__AVCC // PB7 10 A A 19 PB5 // PD5 11 A A 18 PB4, LED f Tests // PD6__12 A A 17__PB3 // Taste1, PD7 13 EU A 16 PB2 // L1g, Heartbeat PB0 14 A A 15 PB1, IR-LED (36 kHz) // ###>>> Anm.: x(CIRn) ... geplant/vorerst nicht in Verwendung // ============================================================================== // Ports+Pins als Ein-(0) oder Ausgänge (1) konfigurieren, Pull Ups (1) aktivieren // A = Ausgang, E = Eingang ohne , EU = Eingang MIT PullUp DDRB = 0b11111111; // siehe aktuell oben PORTB = 0b00000000; // und Port/Pull Ups (1) aktivieren // DDRC = 0b00000000; // PORTC = 0b11111111; // // DDRD = 0b01111110; // -> siehe aktuell oben, D0/D1 Rx/Tx ! PORTD = 0b10000001; // Pull Ups aktivieren, NICHT bei extINT0/~1 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Ciao sagt der JoeamBerg
Hat alles geklappt meine LED blinkt.
Für die größeren Ideen die hier gepostet wurden muss ich noch etwas Material kaufen. Bestellung ist da schon raus.
Sollte jemand die gleiche Anforderung haben und über den Thread stolpern, vielleicht noch kurz das Ergebnis:
Hardware:
- Projektboard
- Kabel
- ATmega328P (Controller)
- USBasp (Programmer)
- Led (ohne Widerstände oder sonstwas auf Anforderungen achten, bevor die Dinger durchbrennen)
Software:
- WinAVR (dort ist avr-dude und weitere tools enthalten)
Um das später laufen zu lassen noch eine Stromquelle, in meinem Fall das Arexx Roboterfahrwerk, es tut aber auch irgendein Batteriehalter.
Lässt sich alles zusammenstecken, als Werkzeug ist nur ein Multimeter oder einfacher Spannungsprüfer zu empfehlen (allein schon um die Fehler zu finden)
Blink Beispiel:
habe ich mir nur ein einfaches genommen
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
int
main (void)
{
DDRB |= _BV(DDB0);
while(1)
{
PORTB ^= _BV(PB0);
_delay_ms(500);
}
}
Nächste geplante Schritte:
- Testen verschiedener Sensoren
- Löten (mit Steckbrett allein endet das sonst bald im Kabelsalat)
- Konzept für Bau von Modulen die sich möglichst auf das Roboterfahrwerk montieren lassen (und sich auch abseits davon wiederverwenden lassen)
- Platine zum einfacheren Programmieren von Controllern dieser Bauweise (quasi Sockel für Controller und für Stecker vom Programmer)
2 Fragen hab ich doch noch.
Die 2 Motoren muss ich ja direkt an die Stromversorgung hängen. Da brauch ich dann zum schalten ein Mosfet wenn ich nicht irre.
Geht da sowas?
http://www.ebay.de/itm/1x-STP90NF03L...item2592a985ab
Oder anders gefragt, auf welche Werte muss ich bei diesen achten?
Zweite Frage, Wenn die Motoren da fest dranhängen könnte ich die zwar an und aus aber nicht umschalten damit das ganze rückwärts fährt, brauch ich da jetzt quasi eine 2. umgedrehte Schaltung die ich auch wieder an und ausschalte oder macht man so etwas anders?
Beide Fragen könnten sich erledigen nach kurzem Blick ins RN W issen hier.
Ciao sagt der JoeamBerg
... Die 2 Motoren muss ich ja direkt an die Stromversorgung hängen. Da brauch ich dann zum schalten ein Mosfet wenn ich nicht irre ...Das würde mich nun interessieren wie/womit genau Du die Motoren ansteuerst. Vielleicht ne kurze Beschreibung und ein kleiner Schaltplan.... Ich steuere die 2 Motoren von diesem Arexx Fahrgestell an. Nichts wildes, einfach nur ein paar Sekunden an, ein paar Sekunden aus, etc ...
Stimmt. ABER der Titel des Threads heißt: "Möglichst günstiger ... Einstieg" - deswegen rate ich eher ab, bestehende Lösungen durch Zukäufe zu ändern die weder notwendig sind, noch ne Verbesserung bringen und wenn das ganze Gefährt mal läuft auch nur noch rumliegen.
Ciao sagt der JoeamBerg
Lesezeichen