welcher Atmel für Torzähler? Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte
Autor |
welcher Atmel für Torzähler? |
|
|
|
|
BID = 149903
Morgoth Schreibmaschine
Beiträge: 2930 Wohnort: Rockenhausen (Pfalz)
|
|
Dankeschön!
Mit dem transistor:
Kann der nur mehr , oder war das ein wink mit dem Zaunpfahl ihm mehr zu geben?
denn eigentlich wollte ich nur mit einer Spannung arbeiten.
Aber so ne schaltung heb ich dann wohl doch such schonmal gemacht, nur erinnere ich mich dunkel hier dann gesagt bekommen zu haben, dass sie uneffektiv ist (für die damalige Anwendung). Seitdem hab ich mich halt auf die Collectorschaltungen beschränkt.
[ Diese Nachricht wurde geändert von: Morgoth am 14 Jan 2005 11:24 ] |
|
BID = 149916
Morgoth Schreibmaschine
Beiträge: 2930 Wohnort: Rockenhausen (Pfalz)
|
|
so, schaltplan nochmal aktualisiert, aber jetzt werden formeln gepaukt...
_________________
Es irrt der Mensch solang er strebt |
|
BID = 149919
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| Kann der nur mehr , oder war das ein wink mit dem Zaunpfahl ihm mehr zu geben?
denn eigentlich wollte ich nur mit einer Spannung arbeiten. |
Das kannst du machen wie du lustig bist. Wenn du willst war das der Wink die LEDs vor dem Regler anzuschließen z.B. um ihn zu entlasten. Dann reicht die Spannung auch noch für ein paar bunte LEDs.
Mit einem solchen Kleinleistungstransistor BC... kannst du so Spannung zwischen 1V und vielleicht 25V schalten.
Mit einem BUV... kommst du ohne Schaltungsänderung bis auf einige hundert Volt.
P.S.:
Ich sehe gerade, dein Schaltplan ist falsch.
Die Emitter gehören an Masse und es müssen npn- Transistoren sein !
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
[ Diese Nachricht wurde geändert von: perl am 14 Jan 2005 12:15 ]
|
BID = 149921
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
perl hat am 14 Jan 2005 12:12 geschrieben :
|
.... und es müssen npn- Transistoren sein !
|
Dieser Fehler keht auf mein Konto.
BC327 und 328 sind pnp, die ensprechenden npn heißen BC337 und 338.
|
BID = 149922
Morgoth Schreibmaschine
Beiträge: 2930 Wohnort: Rockenhausen (Pfalz)
|
oh, hab deine worte missverstanden, dann ist ja ne emitterschaltung das was ich immer mache
aber warum npn? laut conrad katalog ist dein BC327 doch ein pnp
und ganau den hab ich ja auch ausgewählt
edit: ok dann iss gut
_________________
Es irrt der Mensch solang er strebt
[ Diese Nachricht wurde geändert von: Morgoth am 14 Jan 2005 12:21 ]
|
BID = 149925
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Nun gehts also drunter und drüber. Sorry.
Also:
mit npn Transistoren machst du es so wie ich anfangs schrieb,
mit pnp kannst du es so machen wie du es in der Schaltung gezeichnet hast.
Allerdings würde ich npn bevorzugen, da die generell etwas bessere elektrische Daten haben.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 149933
Morgoth Schreibmaschine
Beiträge: 2930 Wohnort: Rockenhausen (Pfalz)
|
hab jetzt wieder umgebaut, aber das jetzt upzuloaden wäre ja wohl unsinn (so ne kleine änderung)
der regler schafft 1A, das sollte langen, weiß noch nichtmal was ich für nen netzteil davor hänge, also plan ich zuerst mal mit den 5V weiter
_________________
Es irrt der Mensch solang er strebt
|
BID = 150601
Morgoth Schreibmaschine
Beiträge: 2930 Wohnort: Rockenhausen (Pfalz)
|
Bin gerade dabei das programm zu schreiben, und es klappt bisher (denke ich) ganz gut. aber was ich nch nicht herausgefunden habe:
wie kriege ich nen vernünftigen piepton hin an ausgang PB7?
kann mir da jemand ein makro machen ausgehend von ner Taktfrequenz von 1MHz, und der piepton sagen wir mal mit um die 1Khz? sollte so eine halbe sekunde lang sein.
_________________
Es irrt der Mensch solang er strebt
|
BID = 155716
Morgoth Schreibmaschine
Beiträge: 2930 Wohnort: Rockenhausen (Pfalz)
|
so, schaltung ist aufgebaut, und das programm im grundgerüst geschrieben. nur dummerweise macht der µC genau nix, wenn ich messe schwirren alle pins so auf 1,6V rum
hier das proggie:
Code : |
INCLUDE "m8def.inc"
.DEF stack = R16
.DEF countA = R17
.DEF countB = R18
.DEF ausgang = R19
.EQU ton = 7
.CSEG
.ORG 000
RJMP Start
.ORG INT0addr
RJMP TorA
.ORG INT1addr
RJMP TorB
Start:
ldi ausgang, 0xFF
out DDRB, ausgang
out DDRC, ausgang
ldi stack, 0b11011110
out DDRD, stack
ldi stack, 0b11000000
out PORTD, stack
ldi stack, 0x00
out PORTB, stack
ldi stack, 0x00
out PORTC, stack
sei
ldi stack, 0b00100000
out MCUCR, stack
SLEEP
.MACRO Beep
sbi PORTD, ton
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
cbi PORTD, ton ; irgendwann sinnvoll erweitern
.ENDMACRO
.MACRO Delay
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
.ENDMACRO
LDI stack, HIGH(RAMEND)
OUT SPH, stack
LDI stack, LOW(RAMEND)
OUT SPL, stack
LDI countA,0b00000000
LDI countB,0b00000000
Routine:
OUT PORTB, countA
OUT PORTC, countB
SLEEP
TorA:
Beep
ldi stack, 0b00000001
ADD countA, stack
Delay
Delay
Delay
Delay
RETI
TorB:
Beep
ldi stack, 0b00000001
ADD countB, stack
Delay
Delay
Delay
Delay
RETI
|
|
_________________
Es irrt der Mensch solang er strebt
[ Diese Nachricht wurde geändert von: Morgoth am 27 Jan 2005 19:18 ]
|
BID = 155719
Morgoth Schreibmaschine
Beiträge: 2930 Wohnort: Rockenhausen (Pfalz)
|
und nochmal der schaltpla, wie er jetzt wirklich aufgebaut ist
_________________
Es irrt der Mensch solang er strebt
|
BID = 156148
Morgoth Schreibmaschine
Beiträge: 2930 Wohnort: Rockenhausen (Pfalz)
|
ok, folgende änderungen:
-Die 1,6V kommen von den 7447ern, der µC bringt selbst nur ca 56mV pro Pin mit
-der reset pin hat sein potential korrekt fast bei der betriebsspannung
-das programm hab ich inzwichen so verändert dass es wirklich läuft, und im simulator genau das tut was es soll.
nun ne frage: kann es vllt sein, dass der µC nicht anläuft, und ich vllt irgendwie seine interne taktgebung zuerst aktivieren muss? und wenn ja, wie mach ich das?
_________________
Es irrt der Mensch solang er strebt
|
BID = 156199
Morgoth Schreibmaschine
Beiträge: 2930 Wohnort: Rockenhausen (Pfalz)
|
AUA falsches Hex format aaaaaargh, einen hab ich daran totprogrammiert, bleiben noch 2 bis es richtig funzt...
also weiter mit den problemen: schaltung geht jetzt theoretisch, aber das ding will die interrupts nicht erkennen (momentaner widerstand vor den fototransistoren ist 1k)
edit: nein, daran scheints nicht zu liegen, wie aktiviere ich die interrups richtig? kann da jemand nen codeausschnitt posten?
_________________
Es irrt der Mensch solang er strebt
[ Diese Nachricht wurde geändert von: Morgoth am 28 Jan 2005 20:26 ]
|
BID = 156207
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Unkommentierte Sourcen lese ich normalereise überhaupt nicht, aber mir ist auffallen, daß dein Macro Beep allenfalls einen Einzelimpuls von einigen µs Dauer produziert.
Wenn du nicht weißt wie man mit den Interrupts umgeht, solltest du vielleicht zuerst mal den Pin pollen.
Wenn dann alles funktioniert, kannst du ja versuchen eine ISR zu schreiben.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 156240
Morgoth Schreibmaschine
Beiträge: 2930 Wohnort: Rockenhausen (Pfalz)
|
gute idee
hätt ich können selbst drauf kommen...
ehm der beep ist ja das einzige kommentierte, der ist ja nicht wirklich fertig, und wird natürlich dann wenn ich rausgefunen hab wie man SINNVOLL nen ton erzeugt ausgeweitet werden (hab mir verschiedene tonprogramme runtergeladen, muss mich da noch durcharbeiten)...
was ich für den interrupt brauche ist ein befehl oder sonstwas, der dafür sorgt dass nur fallende flanken auf INT0 und INT1 ausgewertet werden im moment sollter er laut anleitung alles auswerten, tut aber in der praxis nix auswerten
edit: morgen schreib ich mal kommentare dazu, und stell die aktuelle version rein
_________________
Es irrt der Mensch solang er strebt
[ Diese Nachricht wurde geändert von: Morgoth am 28 Jan 2005 21:34 ]
|
BID = 156360
Morgoth Schreibmaschine
Beiträge: 2930 Wohnort: Rockenhausen (Pfalz)
|
so, hier der aktuelle Code mit kommentaren
Code : |
.INCLUDE "m8def.inc"
.DEF stack = R16
.DEF countA = R17
.DEF countB = R18
.DEF ausgang = R19
.EQU ton = 7
.CSEG
.ORG 000
rjmp Start
.ORG INT0addr ;interruptvektor1 (LichtschrankeA)
rjmp TorA ;sprungbefehl nach unterprogramm zum "torhandling"
.ORG INT1addr ;interruptvektor2 (LichtschrankeB)
rjmp TorB ;sprungbefehl nach unterprogramm zum "torhandling"
.MACRO Beep ;generiert (k)einen ton
sbi PORTD, ton
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cbi PORTD, ton ; irgendwann sinnvoll erweitern
.ENDMACRO
.MACRO Delay ;viel pause
nop
nop
.
.
.
nop
nop
nop
.ENDMACRO ;ende der pause
Start:
ldi ausgang, 0xFF
out DDRB, ausgang ;portB als ausgeng definieren
out DDRC, ausgang ;portC als ausgang definieren
ldi ausgang, 0b11010010bb
out DDRD, ausgang ;portD als als ein und ausgang definieren
ldi ausgang, 0b11000000
out PORTD, ausgang ;portC pins auf high und low level setzen (IR-LED's aktivieren)
ldi ausgang, 0x00
out PORTB, ausgang ;portB pins auf logisch 0 setzen (DisplayA auf 0)
ldi ausgang, 0x00
out PORTC, ausgang ;portC pins auf logisch 0 setzen (DisplayB auf 0)
ldi stack, 0b00100000
out MCUCR, stack
ldi stack, HIGH(RAMEND)
out SPH, stack
ldi stack, LOW(RAMEND)
out SPL, stack ;stack aktivieren
ldi countA,0b00000000 ;Torzählerregister A auf 0 Setzen
ldi countB,0b00000000 ;Torzählerregister B auf O Setzen
sei ;interrups aktivieren (torzählung kann ab jetzt beginnen)
Routine: ;schleife auf
ldi ausgang, 0b11000000
out PORTD, ausgang ;PortD auf standartwert setzen (pin7 wird bei Interrupt zurückgesetzt)
out PORTB, countA ;TorzählerA über portB auf Display ausgeben
out PORTC, countB ;TorzählerB über portC auf display ausgeben
rjmp Routine ;schleife zu(soll später durch korrekte sleepfunktion ersetzt werden)
TorA: ;Torbearbeitungsroutine B
Beep ;Beepmacro aufrufen (Piezopiepser ansteuern)
ldi stack, 0b00000001
add countA, stack ;TorzählerA um 1 hochsetzen
Delay ;delaymacro aufrufen und pause machen, bis hoffentlich der ball fertig durchs tor gehuscht ist
Delay
Delay
Delay
reti ;zurück zu Ursprung
TorB: ;Torbearbeitungsroutine B
Beep ;Beepmacro aufrufen (Piezopiepser ansteuern)
ldi stack, 0b00000001
add countB, stack ;TorzählerB um 1 hochsetzen
Delay ;delaymacro aufrufen und pause machen, bis hoffentlich der ball fertig durchs tor gehuscht ist
Delay
Delay
Delay
Delay
reti ;zurück zu Ursprung |
|
_________________
Es irrt der Mensch solang er strebt
[ Diese Nachricht wurde geändert von: Morgoth am 29 Jan 2005 11:28 ]
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 22 Beiträge im Durchschnitt pro Tag heute wurden bisher 9 Beiträge verfasst © x sparkkelsputz Besucher : 182196385 Heute : 2793 Gestern : 4612 Online : 501 18.10.2024 16:25 6 Besucher in den letzten 60 Sekunden alle 10.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0372450351715
|