Hallo Zusammen,
ab heute gilt: Spielen mit der Rennbahn ist vorbei, nun ist es Slot Racing- Modellbau- Hobby.
Die Planung ist abgeschlossen, hat ja lang genug gedauert. Es geht also los mit dem Dauertesten der Schaltkontakte. Dazu habe ich mir ein kleines Oval mit zwei Steilkurven gebaut. An vier Stellen habe ich die elektronischen Sensoren in die Stromleiter geschoben
Die Schaltimpulse werden von einem Mega8 erfasst, jeweils hochgezählt und an einem LCD ausgegeben.
War aber nicht spassig, heute. Erst blieb das Display dunkel: Man sollte das Poti für den Kontrast auch richtig stecken. Dann sieht es so aus, als ob der erste Controller des 27x4 defekt ist. Also erstmal alles auf zwei Zeilen komprimiert. Oder liegt es daran, dass ich E2 auf D.7 gelegt habe?
Dann schalten die Krücken unregelmässig, muss ich wohl doch auf 24V hoch. Das heisst, ich muss mir einen DC/DC- Wandler (24V auf 5V) mit Peripherie für den AVR und das LCD auf ein Lochraster zusammenbraten, 24V an die Schalter und die Fahrspannung auf 14.8V wieder reduzieren.
Aber immerhin funktioniert das Programm. Wen der Impuls kommt, wird auch hochgezählt. Bei 1000 Runden lass ich das Programm aussteigen.
Bilder vom Chaos später, hier der Code:
CodeBox BASCOM
Nach diesem Test mach ich Versuche mit der Fahrbahnoberfläche. Sand oder Farbe drauf wird sich dann zeigen. Ist für Euch vielleicht nicht interessant. Falls doch jemand Ergebnisse sehen möchte - wie immer auf meiner Website.
Grüsse,
Michael
ab heute gilt: Spielen mit der Rennbahn ist vorbei, nun ist es Slot Racing- Modellbau- Hobby.
Die Planung ist abgeschlossen, hat ja lang genug gedauert. Es geht also los mit dem Dauertesten der Schaltkontakte. Dazu habe ich mir ein kleines Oval mit zwei Steilkurven gebaut. An vier Stellen habe ich die elektronischen Sensoren in die Stromleiter geschoben
Die Schaltimpulse werden von einem Mega8 erfasst, jeweils hochgezählt und an einem LCD ausgegeben.
War aber nicht spassig, heute. Erst blieb das Display dunkel: Man sollte das Poti für den Kontrast auch richtig stecken. Dann sieht es so aus, als ob der erste Controller des 27x4 defekt ist. Also erstmal alles auf zwei Zeilen komprimiert. Oder liegt es daran, dass ich E2 auf D.7 gelegt habe?
Dann schalten die Krücken unregelmässig, muss ich wohl doch auf 24V hoch. Das heisst, ich muss mir einen DC/DC- Wandler (24V auf 5V) mit Peripherie für den AVR und das LCD auf ein Lochraster zusammenbraten, 24V an die Schalter und die Fahrspannung auf 14.8V wieder reduzieren.
Aber immerhin funktioniert das Programm. Wen der Impuls kommt, wird auch hochgezählt. Bei 1000 Runden lass ich das Programm aussteigen.
Bilder vom Chaos später, hier der Code:
CodeBox BASCOM
'____________________________________________________________________
'
'Name :Slot_Sensortest Mega8.bas
'Autor :ACVision (c) 2006 - 2011, M.Gewohn
'Funktion : Sensoren - Zuverlässigkeitstest
'µC : Atmega8 - 16, 14.7456MHz
'____________________________________________________________________
'
$regfile = "m8def.dat"
$crystal = 14745600
'$baud = 9600
$hwstack = 40
$swstack = 20
$framesize = 32
'____________________________________________________________________
'_____ Compiler- Direktiven/ LIB's einbinden ________________________________
'
'$LIB "mcsbyte.lbx"
'____________________________________________________________________
'_____ Ports definieren _________________________________________________
'
DDRB = &B0011_1111 ' PortB - Eingang
portb = &B1100_0000 ' Pullups aktiviert
'
DDRC = &B0000_0000 ' PortC - Eingang
portc = &B1110_0001 ' Pullups aktiviert
'
DDRD = &B1000_0010 ' PortD = Eingang
portd = &B0111_1101 ' Pullups aktiviert
'____________________________________________________________________
'_____ Variablen - Subroutinen - Label ____________________________________
'
dim m as bit
dim ___lcdno as byte , i as byte , k as byte , l as byte
dim sensor(4) as integer
'____________________________________________________________________
'_____ Register _______________________________________________________
'
ADCSRA.7 = 0 : ACSR.7 = 1 'ADC und Komparator abgeschaltet
'on URXC GetCommand
'enable URXC
sreg.7 = 1 ' Interrupts an
'____________________________________________________________________
'_____ Pins zuweisen __________________________________________________
'
'____________________________________________________________________
'_____ Hauptprogramm ________________________________________________
'
'config waitsuart = 1
waitms 200
config lcd = 40 * 4
Config Lcdpin = Pin , Rs = portb.0 , E = portB.1 , DB4 = portB.2 , DB5 = portB.3 , DB6 = portB.4 , DB7 = portB.5 , E2 = portd.7
waitms 200
'
___lcdno = 0
Initlcd
cursor off
cls
___lcdno = 1
Initlcd
cursor off
cls
''
waitms 200
___lcdno = 1
locate 1 , 1
lcd "Sensor 1: "
locate 1 , 15
lcd "Sensor 2:"
'___lcdno = 1
locate 2 , 1
lcd "Sensor 3: "
locate 2 , 15
lcd "Sensor 4:"
'
for i = 1 to 4
sensor(i) = 0
next i
' '
do
for i = 1 to 4
if pinc.i = 1 then
incr sensor(i)
select case i
case 1
k = 1 : l = 10 ' k = 1 : m = 0
case 2
k = 1 : l = 24 ' k = 2 : m = 0
case 3
k = 2 : l = 10 ' k = 1 : m = 1
case 4
k = 2 : l = 24 ' k = 2 : m = 1
end select
___lcdno = 1 'm
locate k , l ' locate k , 10
lcd sensor(i)
portc.i = 0
exit for
endif
next i
if sensor(4) = 1000 then exit do
waitms 50
loop
End
'____________________________________________________________________'
Nach diesem Test mach ich Versuche mit der Fahrbahnoberfläche. Sand oder Farbe drauf wird sich dann zeigen. Ist für Euch vielleicht nicht interessant. Falls doch jemand Ergebnisse sehen möchte - wie immer auf meiner Website.
Grüsse,
Michael