PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anfänger Fragen



xbgamer
15.10.2006, 15:27
Hallo,
da ich nun von Assambler doch zu Bascom gewechselt habe stelle ich nun hier meine Fragen.

Also nun möchte ich mal ganz einfach anfangen.
ich stell mir da folgendes vor.

ich möchte einen roboter bauen der zu anfang ganz einfache sachen kann sprich nur ausweichen.

also stell mir dass so vor
2 motoren habe ich und jetzt erst mal 2 taster. die motoren drehen immer drücke ich nun auf einen taster soll einer stoppen.

habe jetzt mal bascom demo geholt bloß da kommt immer ein fehler: could not identify chip id...

geht einfach net.

Mein anfang is jetzt mal so:

$regfile = "m8def.dat"
$crystal = 3686400
Ddrd = &B0110000
'PORTD = &B0000100

Do
If Pind.2 = 0 Then
Portd.4 = 1
Else
Portd.4 = 0
End If
Loop
End


wenn ich dass mit dem ausschalten hinbekommen habe mit euerer hilfe vll möchte ich noch eine polwendeschaltung intigrieren so dass der motor der steht anstatt stillzustehn sich in die andere richtung dreht. aber erst mal schritt für schritt.

danke euch schon mal.

franzl
15.10.2006, 15:40
hallo,
das könnte daran liegen, dass du den falschen programmer eingestellt hast.
bzw. ihn nicht umgestellt hast zazu gehst du auf options;programmer und stellst den richtigen ein vielleicht klappts dann.
mfg franzl

xbgamer
15.10.2006, 15:47
hab jetzt mal universal mcs interface eingestellt damit gehts jetzt auch bloß leuchtet keine led mit dem programm.

xbgamer
15.10.2006, 16:58
hab jetzt mal ne led mit nem taster hinbekommen:

nun möchte ich es aber noch mit ner zweiten kombinieren was muss ich da zwischen drinn hinschreiben dass ich auch die andere mit dem taster steuern kann.

$regfile = "m8def.dat"
$crystal = 1000000
$baud = 9600
Config Portb.0 = Output
Config Pinc.0 = Input
Config Portb.1 = Output
Config Pinc.1 = Input
Portc.0 = 1
Portc.1 = 1
Do
If Pinc.0 = 1 Then
Portb.0 = 0
Else
Portb.0 = 1
End If
and
Config Portb.1 = Output
Config Pinc.1 = Input
Do
If Pinc.1 = 1 Then
Portb.1 = 0
Else
Portb.1 = 1
End If
Loop
End

xbgamer
15.10.2006, 17:08
genauso wie krieg ich es hin dass die led dauernd leuchtet und bei tastendruck aus geht. egal was ich eingebe ob 0 oder eins es is immer so dass sie bei tastendruck an geht und nicht so wie ich es will.

Jon
15.10.2006, 18:25
hab jetzt mal universal mcs interface eingestellt
Was für einen Programmer hast du?
Hast du den?
https://www.roboternetz.de/wissen/index.php/Bild:Avrtutorial_ispkabel.jpg
Bzw. den selbstgebauten?

Wenn ja, dann stelle es so wie hier beschrieben ein:
https://www.roboternetz.de/wissen/index.php/Kategorie:Grundlagen

Zu deinem Programm:


$regfile = "m8def.dat"
$crystal = 1000000
$baud = 9600

Config Portb.0 = Output
Config Pinc.0 = Input
Config Portb.1 = Output
Config Pinc.1 = Input
Portc.0 = 1
Portc.1 = 1

Do
If Pinc.0 = 1 Then
Portb.0 = 0
Else
Portb.0 = 1
End If
and
Config Portb.1 = Output
Config Pinc.1 = Input
Do
If Pinc.1 = 1 Then
Portb.1 = 0
Else
Portb.1 = 1
End If
Loop
End

Lass das rot markierte raus. Das ist nicht nötig.


Wie krieg ich es hin dass die led dauernd leuchtet und bei tastendruck aus geht. egal was ich eingebe ob 0 oder eins es is immer so dass sie bei tastendruck an geht und nicht so wie ich es will.
Hast du dei LED an GND oder VCC geschlossen?
Müsste aber eigendlich egal sein.

Wo hast du versucht 0 oder 1 einzugeben?
Beim Taster?
Wenn ja, dann ist das nicht richtig.
Du musst 0 und 1 bei der LED tauschen.

Ich hoffe, dass alles, was ich dir jetzt versucht habe zu erklären stimmt und dass ich dir helfen konnte.

jon

xbgamer
15.10.2006, 18:56
gut jetzt gehn die leds wenigstens schon mal per taster druck an bloß was muss ich jetzt ändern dass die leds an sind und per taster druck aus gehen?

xbgamer
15.10.2006, 21:01
alles klar des mit den leds hab ich jetzt endlich geblickt.
nun möchte ich dass wenn ich auf einen taster drücke beispiel:
Do
If Pinc.0 = 1 Then
Portb.0 = 1
Else
Portb.0 = 0

dass zb Portb.2 eingeschaltet wird während portb.0 eben aus ist während der taster gedrückt ist. am besten mit ner einschaltverzögerung von 3 sekunden oder so.

also ich möchte dass wenn ich den taster drücke dass portb.2 3 sekunden länger geschaltet ist wie wenn ich den taster drücke und dann zurück auf portb.0 geht.

dank euch schon mal.

Jon
16.10.2006, 09:17
alles klar des mit den leds hab ich jetzt endlich geblickt.
das ist ja schon :-)


dass zb Portb.2 eingeschaltet wird während portb.0 eben aus ist während der taster gedrückt ist. am besten mit ner einschaltverzögerung von 3 sekunden oder so.
Meinst du das etwa so:

Do
If Pinc.0 = 1 Then
Portb.0 = 0
Wait 3
Portb.2 = 1
Else
Portb.0 = 1
End If
Ich hoffe, dass das jetzt stimmt. Ich mache das gerade nur so theoretsch, ohne es selbst auszuprobieren.


also ich möchte dass wenn ich den taster drücke dass portb.2 3 sekunden länger geschaltet ist wie wenn ich den taster drücke und dann zurück auf portb.0 geht.
Müsste dann so mit meinem Prog stimmen.

jon

xbgamer
16.10.2006, 16:35
so habs mal so geschrieben jetzt klappts auch wie ich will:

$regfile = "m8def.dat"
$crystal = 1000000
$baud = 9600

Config Portb.0 = Output
Config Pinc.0 = Input
Config Portb.1 = Output
Config Pinc.1 = Input
Config Portb.2 = Output
Config Portb.3 = Output

Portc.0 = 1
Portc.1 = 1

Do
If Pinc.0 = 1 Then
Portb.0 = 1
Portb.2 = 0
Else
Portb.0 = 0
Portb.2 = 1
Wait 3
End If
If Pinc.1 = 1 Then
Portb.1 = 1
Portb.3 = 0
Else
Portb.1 = 0
Portb.3 = 1
Wait 3
End If
Loop
End


so hab nun ne kleine frage wie schließ ich jetzt da nen motor drann ich mein des geht jawohl net dass ich den da einfach an die platine drann schließe. die dient doch quasi nur als schalter der rest muss ich doch drann bauen mit relais und so oder irre ich mich da?

Jon
16.10.2006, 16:44
Lese dir mal die Seite durch. Da steht eigendlich alles drin, was du zu den Motoren am ATMEGA wissen musst.
https://www.roboternetz.de/wissen/index.php/Getriebemotoren_Ansteuerung

jon

xbgamer
16.10.2006, 20:20
jo also ich denke ich nehme die einfachste variante sprich die erste. bloß wie darf ich dass verstehn is da schon ne polwendeschaltung eingebaut oder muss ich mir da noch eine drann basteln?

Berni28
18.10.2006, 10:03
...die erste Variante ist mit Polumschaltung. Nimm einen Anschluß des Motors und schau dir an, wo die beiden Kontakte hingehen. Einmal auf Gnd und einmal auf Vcc. Beim anderen Pin des Motors ist's genau umgekehrt.
Ich hab noch eine Alternative (parallel zum MosFet):
Es gibt einen 8-Pin-Chip Namens IR4428. Der fällt zwar eigentlich unter die Kategorie Controll-IC, kann aber bis 1,5A bei 6-20V Nennspannung und Kostet gerade mal um die 1,50 - 1,80EUR pro Stück.
Vorteil:
Der Chip besteht aus zwei Treibern. Einer mit normalem Eingang und einer mit Invertiertem Eingang. Somit kannst du mit einem Chip einen Motor mit Richtungsumkehr steuern.