Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller zum auslesen von impulsen (basic stamp)


von Juli H. (hilperju)


Lesenswert?

Hallo,
ich habe eine frage zum Mikrocontroller basic stamp 1 bzw. 2.
Und zwar möchte ich damit bei einem rc auto eKanalemslicht steuern und 
per Fernsteuerung über den nicht verwendeten Kanal ein blaulicht und 
einen warnblinker an/aus schalten.
Da bei einem rc-empfänger das signal in form von impulsen zwischen 1 und 
2 millisekunden über ein kabel zu den servos und dem Regler übertragen 
wird, dachte ich mir dass das folgendermassen funktionieren könnte: Der 
microcontroller wird über port 0 und 1 (als input) an den Empfänger 
(also an das kabel wo das signal übertragen wird) angeschlossen. Dafür 
müsste dann der mc an den beiden ports auslesen können wie lange der 
impuls dauert und anhand daran das bremslicht und so steuern (also wenn 
z.b. der impuls an port1 zw.1ms und 1,5ms lang ist -> bremslicht an, 
usw...)
Deshalb meine Frage: kann der mc das? Ich habe mal was von einem 
pulsin-befehl gehört, ist das dann vielleicht der benötigte befehl?
Oder wenn keiner der oben genannten mcs das kann, gibt es einen der das 
kann?
Und dann hätte ich auch noch die Frage, ob es irgendein befehl gibt, mit 
dem man mehrere unterprogramme gleichzeitig starten/laufen lassen kann 
(also so ählich wie GOTO,  nur dass es zusätzlich noch in der nächsten 
zeile weitergeht, wo dann der gleiche befehl das nächste unterprogramm 
startet?
Wir nehmen in der schule gerade das thema mc durch, weshalb ich 
überhaupt auf die idee gekommen bin. In der schule verwenden wir den 
Basic stamp 1. Dadurch dass wir das thema erst vor Weihnachten 
angefangen haben, weiss ich natürlich noch nicht so viel über mcs.
Ich hoffe dass ihr mir weiterhelfen könnt.
Vielen Dank für eure Hilfe ;)

von STK500-Besitzer (Gast)


Lesenswert?

Juli H. schrieb:
> Deshalb meine Frage: kann der mc das? Ich habe mal was von einem
> pulsin-befehl gehört, ist das dann vielleicht der benötigte befehl?
> Oder wenn keiner der oben genannten mcs das kann, gibt es einen der das
> kann?

Ja, kann er.

Juli H. schrieb:
> Und dann hätte ich auch noch die Frage, ob es irgendein befehl gibt, mit
> dem man mehrere unterprogramme gleichzeitig starten/laufen lassen kann
> (also so ählich wie GOTO,  nur dass es zusätzlich noch in der nächsten
> zeile weitergeht, wo dann der gleiche befehl das nächste unterprogramm
> startet?

Was, bitte?
Programme werden immer seriell abgearbeitet. Dabei kann es zu 
(bedingten) Verzweigung kommen.
Deine Idee lässt sich aber problemlos mit der Basic Stamp 1 erledigen.
Sowohl den Lichtschalter als auch Blinker kann man damit auch 
realisieren.

von Juli H. (hilperju)


Lesenswert?

Hallo,
Erstmal vielen Dank für deine Antwort.
Wie genau kann man das machen mit dem mc, also mit welchem befehl liest 
er die länge des Impulses aus?
Ein kurzes programmbeispiel wäre super, oder gibt es auch irgendwo eine 
Anleitung wo beschrieben wird wie man das macht (hab leider keine 
gefunden)?

: Bearbeitet durch User
von STK500-Besitzer (Gast)


Lesenswert?

Juli H. schrieb:
> Wie genau kann man das machen mit dem mc, also mit welchem befehl liest
> er die länge des Impulses aus?

"pulsin". Die Beschreibung dazu findest du im Handbuch zur Basic 
Stamp-Programmierung.

Juli H. schrieb:
> Ein kurzes programmbeispiel wäre super, oder gibt es auch irgendwo eine
> Anleitung wo beschrieben wird wie man das macht (hab leider keine
> gefunden)?

Nee, darauf habe ich keine Lust.
Denk dir selber aus, wie das vonstatten gehen müsste (Struktogramm...) 
und darüber können wir gerne diskuttieren. Wichtig ist, dass man das 
Problem in einen Algorithmus übersetzt - die Sprache ist dann egal.

von Juli H. (hilperju)


Lesenswert?

Ich hab jetzt mal schnell ein Beispielprogramm für das Bremslicht 
geschrieben:

' {$STAMP BS1}
' {$PBASIC 1.0}
OUTPUT 1
INPUT 6

 Bremslicht:
 PULSIN PIN6, 1, B0
 IF B0 = 750 THEN bremslichtaus
 IF B0 < 750 THEN Bremslichtan
 IF B0 > 750 THEN bremslichtaus
 GOTO Bremslicht
  Bremslichtan:
  HIGH 1
  IF B0 < 550 THEN Vollbremsung
  GOTO Bremslicht
   Vollbremsung:
   HIGH 1
   PAUSE 30
   LOW 1
   PAUSE 30
   PULSIN PIN6,1,B0
   IF B0 < 550 THEN Bremslicht
  Bremslichtaus:
  LOW 1
  GOTO Bremslicht

Sobald man bremst sollte das Bremslicht leuchten, bei einer Vollbremsung 
soll es schnell Blinken.
Ist das in der Realität auch so, also ist das so richtig programmiert?
Falls das richtig sein sollte, wie geht es dann weiter mit dem 
warnblinker und dem Blaulicht (dieso sollen dann an den unbelegten ch3 
angeschlossen werden)? Ich könnte das jetzt zwar auch so schreiben für 
das Blaulicht, aber dann wird ja entweder der Teil für das Bremslicht 
oder der für das Blaulicht ausgeführt -> deshalb meine zweite Frage am 
Anfang.
PS: Da ich mir den µc noch nicht gekauft habe (ich wollte erst sicher 
gehen dass dieser auch in der lage ist das zu steuern, aber das ist er 
ja..) kann ich das ganze nicht einfach ausprobieren.

von Juli H. (hilperju)


Lesenswert?

Ich habe in der befehlsübersicht vom basic stamp editor so eben den 
befehl BRANCH gefunden.
• BRANCH:     BRANCH Offset, [Address1, Address2, ...AddressN]
Ich bin mir nicht sicher, aber kann man hier vielleicht in die Eckige 
Klammer Bremslicht, Blaulicht,... schreiben, wodurch dann beides "in 
Betrieb" ist? Also dann mehrere unterprogramme gleichzeitig laufen?
Wenn ja, was muss dann bei Offset stehen?

von flip (Gast)


Lesenswert?

ich kann Kartoffelbrei und Rotkraut zur selbsen zeit kochen. Ich muss 
mich dafür noch nicht einmal aufspalten sondern rühre mal dies und mal 
das. Überkochen wird trotdem nichts.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Wenn du dich mit einem Arduino bschäftigen würdest - da gibts eine sehr 
umfangreiche Lib für sowas ...

http://sourceforge.net/projects/arduinorclib/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.