Das wurde an einem Wochenende zusammen gebaut. Ist ja nichts aufwendiges dran gewesen, was die Mechanik angeht.
Druckbare Version
Das wurde an einem Wochenende zusammen gebaut. Ist ja nichts aufwendiges dran gewesen, was die Mechanik angeht.
Ich habe mal wieder an meinem Fahrzeug weitergebaut. Naja, man könnte eher sagen, dass ich es neu gebaut habe. Jetzt besteht es aus Holz und hat vier RB-35 Motoren mit 1:30 Getriebe.
Zum testen der Software und Hardwarekomponenten verwende ich jedoch erst einmal ein RP5 Chassis.
Doch weiß ich jetzt noch nicht, welchen Motortreiber ich verwenden sollte ?
Für den RP5 reicht ja ein L293D noch aus, doch wahrscheinlich nicht mehr für vier RB-35 Motoren unter Last. Was könnte ich da nehmen? Ich möchte nicht 60€ für ein Motortreiber oder Modellbauregler ausgeben.
Anhang 27540 Anhang 27541 Anhang 27542
Dieser 10€-Schrittmotortreiber kann auch zwei DC-Motoren ansteuern (mit 1,5A/2APeek?). Maximale Spannung beträgt aber leider nur 10V:
Bild hier
(Bild von http://www.watterott.com/de/DRV8834-...Driver-Carrier)
Hallo radbruch, danke für deine Meinung :)
Doch wird dieser Regler für mich wohl nicht ausreichen, da ich zum einen eine Spannung von 12V brauche und zum anderen auch zwei RB-35 Motoren an einer H-Brücke betreiben möchte...
Da diese Motortreiber aber mehr Geld kosten, was ich für einen Test nicht investieren will, habe ich mir überlegt den Motortreiber selber zu bauen(wollte ich eh schon mal machen).
Also habe ich mal im Web gesucht :
http://s-huehn.de/elektronik/ unter Fahrtregler
und so soll es aussehen:
http://www.ulrichc.de/project/cu-dc-motor-ctrl/
und hier mein Schaltplan (Es wäre sehr nett, wenn mir jemand sagen könnte, ob noch irgendwas fehlt oder der Mega 8 falsch beschaltet ist ):
Anhang 27760
Ich habe jetzt schon öfters den l6205N genutzt. Der bietet 2 mal 2,8A max Ausgangsstrom und kostet derzeit um die 5Euro.
OK, danke. Der reicht aber auch noch nicht :( Deshalb habe ich ja den Schaltplan... Was ist mit dem? Ist der nun ok?
Hallo Leute, ich habe das Motorboard jetzt gebaut, doch habe ich eine Frage zu den Fusebits :
Ich habe den Quarz: http://www.reichelt.de/index.html?AC...8,0000-HC49U-S
Was muss ich bei den Fusebits unter Taktgeber einstellen, da gibt es so viele Möglichkeiten..... Die Tutorials von Halvar.at habe ich schon gesehen, doch hat es noch nicht geholfen.
Ich hoffe ihr könnt mir helfen. Der Einsteiger
Hallo, ich habe jetzt eine Lösung gefunden :)
Für alle, die das gleiche Problem haben.Da steht die Lösung : https://www.roboternetz.de/community...usebit+atmega8
Jetzt konnte ich den Motortreiber auch schon testen. Er funktioniert und wird nicht einmal mit zwei RB-35 Motoren lauwarm !! :)
Doch habe ich jetzt noch eine Frage zum PC-Bot-Interface. Ich habe für Testzwecke das aufgebaut: Bascom Code:
Visual Basic Code :Code:$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Config Serialin = Buffered , Size = 20
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Declare Sub Cw
Declare Sub Ccw
Declare Sub Stopp
Declare Sub Bremsen
Dim Stringinput As String * 20
Dim Teilstrings(5) As String * 6 'einzelne / zerlegte Strings
Dim Stringscnt As Byte
Dim Motornummer As Byte
Dim Motormachen As Byte
Dim Speed As Integer
Dim Sicher As Integer
Dim Pruef As Integer
Pruef = 10
Dim A As Byte
A = 0
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Print "Alles OK"
Do
'Stringinput = "M,1,1,500,502"
A = Ischarwaiting()
If A = 1 Then
Input Stringinput
Waitms 20
Print "Seriel"
End If
Stringscnt = Split(stringinput , Teilstrings(1) , ",") 'aufteilen nach ","
Motornummer = Val(teilstrings(2))
Motormachen = Val(teilstrings(3))
Speed = Val(teilstrings(4))
Sicher = Val(teilstrings(5))
Pruef = Motornummer + Motormachen
Pruef = Pruef + Speed
If Pruef = Sicher Then
If Teilstrings(1) = "M" Then
If Motornummer = 1 Then
Select Case Motormachen
Case 0
Call Bremsen
Case 1
Call Cw
Case 2
Call Ccw
Case 3
Call Stopp
End Select
End If
End If
End If
Loop
End
Sub Bremsen
Print "Bremsen !"
End Sub
Sub Stopp
Print "Stopp !"
End Sub
Sub Cw
Print "CW mit :" ; Speed
End Sub
Sub Ccw
Print "CCW mit :" ; Speed
End Sub
Mein Problem: Es will nicht funktionieren!! Doch ich weiß einfach nicht warum ?? Immer wenn ich was mit dieser dummen seriellen Schnittstelle machen will, funktioniert es nicht... Ich hoffe ihr könnt mir helfen, da sonst mein Motortreiber für den Mülleimer ist. Ohne diese Grundkommunikation kann ich nichts machen :(Code:Imports System.IO.Ports.SerialPort
Public Class Form1
Dim Buffer As String
Dim Motornummer As Integer
Dim Motormachen As Integer
Dim Speed As Integer
Dim Pruef As Integer
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs)
If SerialPort1.IsOpen Then
SerialPort1.Close()
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
'Comport Einstellungen
SerialPort1.PortName = TextBox1.Text
SerialPort1.BaudRate = TextBox2.Text
SerialPort1.Open()
Button1.Enabled = False
TextBox1.Enabled = False
TextBox2.Enabled = False
Catch ex As Exception
MessageBox.Show("Achtung: Die Schnittstelle konnte nicht geöffnet werden! ")
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If SerialPort1.IsOpen Then
SerialPort1.Close()
Button1.Enabled = True
TextBox1.Enabled = True
TextBox2.Enabled = True
Button2.Enabled = False
End If
End Sub
Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Control.CheckForIllegalCrossThreadCalls = False
Buffer = (SerialPort1.ReadExisting)
'Die Textbox heißt Terminal und die Daten werden dort
'hineinkopiert()
TextBox3.AppendText(Buffer)
TextBox3.ScrollToCaret()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Motornummer = TextBox5.Text
Motormachen = 1
Speed = TextBox4.Text
Pruef = Motornummer + Motormachen
Pruef = Pruef + Speed
If SerialPort1.IsOpen Then
SerialPort1.WriteLine("M," + String.Format(Motornummer) + "," + String.Format(Motormachen) + "," + String.Format(Speed) + "," + String.Format(Pruef) & vbCr)
End If
Pruef = 0
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Motornummer = TextBox5.Text
Motormachen = 2
Speed = TextBox4.Text
Pruef = Motornummer + Motormachen
Pruef = Pruef + Speed
If SerialPort1.IsOpen Then
SerialPort1.WriteLine("M," + String.Format(Motornummer) + "," + String.Format(Motormachen) + "," + String.Format(Speed) + "," + String.Format(Pruef) & vbCr)
End If
Pruef = 0
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Motornummer = TextBox5.Text
Motormachen = 0
Speed = TextBox4.Text
Pruef = Motornummer + Motormachen
Pruef = Pruef + Speed
If SerialPort1.IsOpen Then
SerialPort1.WriteLine("M," + String.Format(Motornummer) + "," + String.Format(Motormachen) + "," + String.Format(Speed) + "," + String.Format(Pruef) & vbCr)
End If
Pruef = 0
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Motornummer = TextBox5.Text
Motormachen = 3
Speed = TextBox4.Text
Pruef = Motornummer + Motormachen
Pruef = Pruef + Speed
If SerialPort1.IsOpen Then
SerialPort1.WriteLine("M," + String.Format(Motornummer) + "," + String.Format(Motormachen) + "," + String.Format(Speed) + "," + String.Format(Pruef) & vbCr)
End If
Pruef = 0
End Sub
End Class
Der Einsteiger
Also, um mein Problem jetzt noch einmal deutlicher zu nennen : Ich habe das Programm in Bascom verwendet:
Im Terminal Emulator von Bascom funktioniert es ja, doch geht es nicht bei VB.... :(Code:$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Config Serialin = Buffered , Size = 20
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim Stringinput As String * 20
Dim Teilstrings(6) As String * 6 'einzelne / zerlegte Strings
Dim Stringscnt As Byte
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Print "Alles OK"
Do
' So soll der Stringinput aussehen: "M,1,1,500,502"
Input Stringinput
Waitms 20
Print "Seriel"
Clear Serialin
Loop
End
Hier meine Sendezeile in VB:
Meine Frage: Habe ich das mit dem CR+LF was der Befehl Input angeblich benötigt richtig gemacht, oder muss man das anders schreiben ???Code:SerialPort1.WriteLine("M," + String.Format(Motornummer) + "," + String.Format(Motormachen) + "," + String.Format(Speed) + "," + String.Format(Pruef) & vbCrLf)
Der Einsteiger