PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C-Control ja, was jetzt?



Roboter n00b
01.06.2004, 19:48
Hallo Roboterfreunde
Ich habe mir jetzt den C-Control inkl Starterboard zugelegt, und habe auch schon das erste Programm von http://home.arcor.de/mk-c/Basic.html programmiert (danke dem, der die Seite gemacht hat), was auch funktioniert hat . O:) Nun weiss ich aber nicht weiter. Ich möchte gerne noch andere Kleine Programme schreiben, um das Programmieren zu lernen. Ich hab mir nun folgendes vorgenommen: Und zwar will ich 1 led zum Blinken bringen, also an sich ganz simpel. Könnte mir jemand sagen, wie ein solches Programm aussieht, das wäre echt super. Dann lerne ich auch dir grundbefehle einzusetzen und kann dann selbst was probieren.

vielen Dank für eure Hilfe

gruss Serge[/url]

01.06.2004, 22:13
Schau mal unter Links Kategorie C-Control, da findest du auch Seiten mit ersten Beispielprogrammen

Javik
02.06.2004, 10:44
Hier hab ich mal ein Programm geschrieben... du musst die Led über einen 470 Ohm Widerstand zwischen port 1 und Ground anschliesen.
Also so:
___________
Port1 o-----[___________]---|>|----o GND
R=470 Ohm LED

Die LED wächselt alle 1 sec ihren Zustand(also an bzw aus). Dafür ist der Befehl Tog zuständig. Das ganze ist in einer Endlosschleife drin.



define led1 port[1]
#loop
tog led1
pause 100
goto loop

Roboter n00b
02.06.2004, 11:46
Hi Javik
Danke für deine Hilfe, das Prog läuft. Eine Frage hab ich aber noch: Dieser "tog" befehl: ich versteh zwas, was er bewirkt, aber nicht genau, wie er funktioniert. Könntest du mir das noch sagen?

Danke
Serge

Matthias
02.06.2004, 13:09
Mit dem TOG-Befehl kann man den Zustand eines ports oder anderen bits umkehren. Dadurch wird aus 0 1 und aus 1 0.

Matthias
02.06.2004, 13:13
@Javik:

Wenn die LED jede sekunde ihren zustand wechseln soll, müsste es heissen:

...
pause 50
...

Der interne Timer hat ne Frequenz von 50Hz (20ms...).

@Roboter n00b:

Die Seite ist von mir.... bitte *g*

Roboter n00b
02.06.2004, 13:24
Danke Matthias, für Antwort und Seite ;)
Also das mit dem Programm ist mir jetzt klar, aber ich habe noch zwei andere Fragen zum C-Control.
http://www.wieselsworld-online.de/pics/0006.gif

So: 1. Links und rechts habe ich einige Ports. Ich habe gelesen, dass ich nur die auf der rechten seite nutzen kann. Für was sind die anderen? Kann ich auf der rechten seite alle ports ausser den untersten benutzen?
2. Für was ist die DCF 77 LED?


Danke Serge

02.06.2004, 16:01
benutzen kann man sie alle (entsprechend ihrer Funktion)! :_)
RG

Roboter n00b
02.06.2004, 16:05
will sagen? :?: :?: :?: :?:

02.06.2004, 19:13
@ Matthias : Ok ok hast ja recht ^^

Wenn due die C-Control gekauft hast war da auch bestimmt ein Heft dabei, wo des alles drinsteht...
Wenn du eine DCF77 Antenne angeschlossen hast und die C-Control ein Signal eber sie empfangen hat, dann leuchtet sie, wenn sie stark blinkt, dann hat die Antenne Empfangsstörungen...
Wenn du keine Antenne dranhast, dann leuchtet sie halt gar nicht ...

Du kannst alle Ports benutzen. Die genaue Belegung steht in dem Heft, dass dabei war, auf der letzten Seite drin.

Javik
02.06.2004, 19:14
sry des \:D/ war ich... immer des eingelogge...

Matthias
02.06.2004, 19:22
Wieso sollte man nur die Hälfte belegen? Wäre doch ein bisschen blöde. Ich setzt mich mal demnächst an eine Pinbelegung. Die findest du aber auch bei google.

Roboter n00b
02.06.2004, 19:34
Hi
Also ich hab das hier gelesen: http://www.wieselsworld-online.de/daten.htm#4

Da steht (zitat): Diese Pins (gemeint sind die auf der linken seite) sind in der orginalen Version der C-Control nicht nutzbar. Diese sind für den Anschluß weiterer I²C-Bausteine vorgesehen, aber können von Basic nicht direkt angesprochen werden!

Serge

Javik
02.06.2004, 19:39
LOL der meint damit nicht die die unter Controler Seite stehen und mit A anfangen, sondern die, bei denen des A in Klammern dahinter steht...
Also :
B11 SDA I²C-Bus (PA0) (A)
B12 SCL I²C-Bus (PA1) (A)

[/u]

Roboter n00b
02.06.2004, 19:44
:D :D :D , ach sooooooo
Aha, dann hat man insgesamt 16 digitalausgänge oder?
Wenn ich z.B ein prog habe mit "define LED port[13]", dann muss ich den einfach an der linken seite anschliessen, oder?
Noch ne frage: B1 +5V? Heisst das einfach, dass aus B1 5 volt rauskommt?
Was sind AD-Eingänge?

Danke Serge

Javik
02.06.2004, 19:53
Ja er hat 16 Digitalausgänge...
Ja du definierst ja damit den Port 13, dann musst du die LED auch an Port 13 ranhängen und der is auf der linken Seite. Des sieht man ja auf der Page ganz gut...
Bei B1 kann die Betriebsspannung der C-Control abgegriffen werden und dass sind 5V
Mit den AD Eingängen kann man Spannungen messen.

Roboter n00b
02.06.2004, 19:55
Ja er hat 10 Digitalausgänge

16 meinst du oder?

Javik
02.06.2004, 19:56
Ja :oops: , sorry !! Habs ausgebessert

Roboter n00b
02.06.2004, 19:57
oke, danke für deine hilfe

Serge

Javik
02.06.2004, 20:05
Auf der Seite von oben, da gibts doch auch einige Tipps zur verwendung der Ausgänge und deren Beschaltung:
http://www.wieselsworld-online.de/beschaltung.htm

Kein Problem :) , freu mich doch, wenn ich auch mal jemandem helfen kann und nicht nur immer mir geholfen werden muss ;)

Gruß Javik

Roboter n00b
02.06.2004, 22:03
Hallo Jungz
Ich bins nochmal. Also ich hab jetzt mein Programm auf den C-Control übertragen (mit dem Blinklicht)
Javik: Dein Programm funzt bei mir irgendwie nicht. Ich habs jetzt mir einem anderen gemacht.

define LED port[1]
#ANFANG
IF LED = ON THEN LED = OFF ELSE LED = ON
PAUSE 100
GOTO ANFANG

Dann übertrage ich das prog: Nun leuchtet die LED an port eins schwach. Wenn ich jetzt den gelben knopf drücke, Leuchtet sie, un erlischt dann vollsändig und leuchtet dann wieder, also wie erwünscht...
Wenn ich aber dann den Stop knopf drücke hört es zwar auf zu blinken, leuchtet aber immer noch schwach. An was lönnte das liegen, dass hier immer ein kleiner strom fliesst?

Danke Serge

so hats funktioniert

Javik
03.06.2004, 11:13
Des is genau des gleiche Programm nur umständlciher...
der tog Befehl muss gehen. der macht nix anderes, als das


IF LED = ON THEN LED = OFF ELSE LED = ON

versuchs nochmal einfach antadt dem if einfach TOG LED hinschreiben.

Das ist normal, dass da noch ein kleiner strom fliest, is bei mir auch so...

03.06.2004, 11:22
Wenn Du Rest drückst ist Port auf Eingang und Pullup Widerstand legt geringe Spannung an. Dadurch leuchtet diese schwach

Roboter n00b
03.06.2004, 13:19
Hi Danke für die Antwort
Also das mit dem TOG funzt zwar irgendwie nicht, aber ich hab noch ne andere Frage. Ich habe nun 2 LEDs programmiert, die Blinken sollen.

define LED port[1]
#ANFANG
IF LED = ON THEN LED = OFF ELSE LED = ON
PAUSE 100
define LED1 port[2]
IF LED1 = ON THEN LED1 = OFF ELSE LED1 = ON
PAUSE 100
GOTO ANFANG

So, nun blinken sie Folgendermassen (zeitlich von links nach rechts):
LED1 An Aus An
LED2 An Aus An

Wenn ich es mit diesem programm mache:
define LED port[1]
#loop
IF LED = ON THEN LED = OFF
PAUSE 40
IF LED = OFF THEN LED = ON
PAUSE 40

define LED1 port[2]
IF LED1 = ON THEN LED1 = OFF
PAUSE 40
IF LED1 = OFF THEN LED1 = ON
PAUSE 40
goto loop

sieht die zeitliche abfolge so aus:
LED1 Aus An Aus An
LED2 Aus An

Wieso ist das unterschiedlich?

Was müsste ich machen, um so etwas zu erhalten:
LED1 An Aus An
LED2 An Aus An

Oha, ich hab das jetzt per zufall gerade geschafft, mit diesem Programm:
define LED port[1]
#ANFANG
IF LED = ON THEN LED = OFF ELSE LED = ON
PAUSE 1
define LED1 port[2]
IF LED1 = ON THEN LED1 = OFF ELSE LED1 = ON
PAUSE 100
GOTO ANFANG

Also ich hab beim ersten PAUSE 1 und beim 2. PAUSE 100
Wieso blinken denn beide gleichzeitig? Wieso nicht eines schneller und das andere langsamer? Das wäre doch eigentlich logisch bei 2 unterschiedlichen pausen.
Wie würde ein Programm aussehen, bei welchem die LEDs unterschiedlich schnell blinken?

ufff... das wars (vorerst)

Serge

03.06.2004, 14:35
Du musst logisch überlegen dann kommst du selbst drauf.
Wenn die nacheinander blinken sollen dann musst du das auch so programmieren ;-)

Z.B. so


define LED port[1]
define LED1 port[2]
anfang:
Led=1
pause 100
Led=0
pause 100
led1= 1
pause 100
led1=0
pause 100
goto anfang

Roboter n00b
03.06.2004, 14:59
Ach so, jetzt hab ichs verstanden. Es kommt also darauf an, was man im Programm zuerst schreibt

Danke

Roboter n00b
03.06.2004, 19:05
Hi
Dank euch bin ich schon emsig am programmieren O:) . Ich habe jetzt schon etliche lauflichter programmiert, das macht ziemmlich spass. Aber nun möchte ich mir einer grösseren (aber nicht zu schwierig) aufgabe stellen. Habt ihr eine idee, was noch machbar wäre?

Und noch was: Am controler gibt es einen Port: A11 BEEP (Signalgeber-Ausgang). Kann man mit dem Töne generieren?

Ausserdem hab ich noch ein Starterboard. Für was genau ist das hilfreich (denn bis jetzt bin ich ganz gut ohne ausgekommen)

ich hoffe ihr könnt mir (wie immer \:D/ ) helfen

Gruss Serge

04.06.2004, 11:29
Wenn du die c-control auf starterbord drauftsteckst, dann kannst du mit dem befehl beep einen ton erzeugen. Also zum Beispiel : beep 400,25,10

Roboter n00b
04.06.2004, 17:14
ach so, und wo muss ich dann den Lautsprecher dranhängen?

Matthias
04.06.2004, 19:02
Am besten du nimmst einen Piezo-Beeper. Soeiner, wie es ihn auch im Rechner 8Das nerfige teil, dass immer dann Beept, wenn man zu viele Tasten Gleichzeitig drückt *g*) gibt. So einer ist nämlich so hochohmig, dass du nichtmal einen Wiederstand brauchst. Einfach ein pol nach Masse und das den anderen an den Beep-port Schalten.

Roboter n00b
04.06.2004, 19:19
aber der beep port ist ja am c unit. Wozu brauch ich denn das starterboard?

gruss Serge

Matthias
04.06.2004, 19:22
Im Starterboard ist ein BEEPer drinne.

Roboter n00b
04.06.2004, 19:24
ach so, dann brauche ich also keinen zusätzlichen anzuschliessen?

05.06.2004, 16:13
Ich (der Gast(war net eingeloggt)) hab doch gesagt, dass du die C-Control aufs Starterboard draufstecken sollst.

Michael
05.06.2004, 16:32
Hallo Gast,
es wäre mir neu, dass auf dem Starterboard ein Beeper drauf ist.
Du meinst sicher das Applikationsboard.
Hallo Roboter n00b,
Einen Beeper auf deinem Board würdest du erkennen.
Gruss, Michael

Matthias
06.06.2004, 12:27
Wenn du ein altes Modem rumliegen hast, kannst du auch da schnell den BEEPer rauslöten (Hab ich auch gemacht. Das Gute daran ist, das das Fiech jetzt nicht mehr diese schrecklichen Geräusche macht *g*). Wenn du ihn dann an den BEEPport gehangen hast, nur im programm z.B. "beep 250,50,0" Schreiben und schon beept er 1sek lang.

Roboter n00b
06.06.2004, 14:35
also ist jetzt am starterboard ein beeper dran oder nicht?

Roboter n00b
06.06.2004, 14:45
Hi
Ich hab jetzt noch ne weitere Frage. Ich möchte gerne einen schritt weiter richtung roboter machen:
Wenn ich einen Sensor anschliessen will. Wo schliesse ich den an? Und wie kann ich machen, dass die motoren entsprechend darauf reagieren?

gruss Serge

Matthias
06.06.2004, 15:34
Auf dem Starter ist keiner, Auf dem Applikatinboard schon.

Kommt ganz drauf an was für ein Sensor. Es gibt welche die Digital sind, es gibt analoge, es gibt welche, die PWM ausgeben, es gibt welche die Den wert als Frequenz ausgeben, es gibt welche, die man über den I²C oder die Serielle ausließt.......

Roboter n00b
06.06.2004, 15:39
hast du mir eine gute seite, wo man sensoren kaufen kann?

thx Serge

Matthias
06.06.2004, 15:40
http://www.roboter-teile.de/Shop/index.html

Roboter n00b
06.06.2004, 15:44
Hi
Danke
Nehmen wir mal diesen: http://www.roboter-teile.de/Shop/pd448287116.htm?categoryId=0

das ist ein analoger
Jetzt hat der aber 3 Kabel, wo muss ich die anschliessen?
Würde ein Programm in etwa so aussehen?

define motor port1
if AD-Eingang 7=1 then motor=1

Serge

Matthias
06.06.2004, 15:50
Einer geht an +, einer an - und einer ist der Ausgang.

Ein Programm könnte so aussehen:

If AD_Eingang>128 then motor=1

Matthias
06.06.2004, 15:51
Der Sensor kann ja Werte von 0-255 ausgeben, ist ja analog. Deshalb ist es net so jut, wenn man =1 schreibt.

Roboter n00b
06.06.2004, 15:53
Hi
Also wenn man hier schaut:
http://www.wieselsworld-online.de/daten.htm#4

müsste ich z.B einen an A20+5V, einen an A1 GND und einen z.B an A3 AD-Eingang 1
so richtig?

was ist gemeint mit >128? Ist das der abstand zu einer wand oder sonst was??

thx

Roboter n00b
06.06.2004, 15:58
Aha, kann also jeder analoger sensor werte von 0- 255 ausgeben?
Aber ich verstehe nicht, wieso man nicht 1 schreiben sollte.
Für was stehen denn diese Werte 0-255?

Serge

Matthias
06.06.2004, 21:14
>128 bedeutet größer 128. Wenn der Wert über 128 ist, ist die Bedingung erfüllt.

leotef
26.01.2005, 10:18
Hallo,
der Thread ist zwar Asbach, aber wollte nur anmerken, dass der Tog Befehl nur funktioniert, wenn man den Zustand dieses Ports vorher irgendwie definiert hat !

Das Simple Programm:
#start
tog led:pause 10
goto startfunktioniert also nicht. Ganz oben muss man mit Led=on bzw off, den Zustand definieren.

Bin jetzt nach 2h Fehlersucherei drauf gekommen ](*,)