Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro soll die Helligkeitswerte über Hyper terminal ausgeben
Weis jemand was ich in den roten bereich rein schreiben soll damit Asuro die aktuelle Helligkeit von data[0] ausgibt
SerWrite("---------------",15);
Es wäre sehr hilfreich zu wissen wie groß der Wert auf holzboden ...... ist
Ich habe es jetzt so gemacht aber es ist so umständlich
#include "asuro.h"
int main(void)
{
int x=0,LANG=0,z=0;
unsigned int data[2];
Init();
FrontLED(ON);
while( 1 )
{
LineData(data);
if ( data[0] > 10 )
BackLED(ON,OFF); //BackLED > 10
else
BackLED(OFF,OFF);
if ( data[0] > 30 )
BackLED(OFF,ON); //BackLED > 30
else
BackLED(OFF,OFF);
if ( data[0] > 50 )
StatusLED(RED); //RED > 50
else
StatusLED(OFF);
if ( data[0] > 100 )
StatusLED(YELLOW); //GELB > 100
else
StatusLED(OFF);
if ( data[0] > 150)
StatusLED(GREEN); //GRÜN > 150
else
StatusLED(OFF);
if ( data[0] > 150)
StatusLED(GREEN); //GRÜN > 150
else
StatusLED(OFF);
}
return 0;
}
the.speciali
21.11.2010, 12:07
Hi,
Das Problem dabei ist, das data[0] einen int-Wert zurück liefert, aber SerWrite zum Übertragen einen char-Wert benötigt.
Ich hab das damals mit der C-Funktion "itoa" gelöst, die den int-Wert in ein char-Wert umwandelt.
Meine Funktion sah dann ungefähr so aus:
int LiniensensorDiagnose (void)
{
unsigned int data[2];
char data0[5], data1[5];
int t;
StatusLED (GREEN);
FrontLED (ON);
while (1)
{
LineData (data);
itoa (data[0], data0, 5);
itoa (data[1], data1, 5);
SerWrite (data0, 4);
SerWrite (" links\n\r", 8);
SerWrite (data1, 4);
SerWrite (" rechts\n\r", 9);
for (t=0; t<100; t++)
{
Sleep (72);
}
}
}
Bei irgendwelchen Fehlern wäre ich sehr dankbar mich drauf hinzuweisen :mrgreen:
beste Grüße
the.speciali
Danke
da kommen sehr viele Fehler meldungen und Warnungen
#include "asuro.h"
hasst du am anfang vergessen
und itoa kennt er nicht als variabelname
aber wieso?
lg
the.speciali
21.11.2010, 13:10
Hmm du hast es nur rüber kopiert? Und ein Fehler hab ich noch gemacht. Der itoa Befehl steckt in der stdlib die muss man natürlich mit einbinden.
Jetzt sollte das rüber kopieren auch funktionieren ;)
#include "asuro.h"
#include "stdlib.h"
int main(void)
{
unsigned int data[2];
char data0[5], data1[5];
int t;
StatusLED (GREEN);
FrontLED (ON);
while (1)
{
LineData (data);
itoa (data[0], data0, 5);
itoa (data[1], data1, 5);
SerWrite (data0, 4);
SerWrite (" links\n\r", 8);
SerWrite (data1, 4);
SerWrite (" rechts\n\r", 9);
for (t=0; t<100; t++)
{
Sleep (72);
}
}
}
Forensuche!
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=54294
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=36436
Gruß
DL
Ja stimmt aber ich habe auch geschaut wo der Fehler sein könnte
eine Frage noch wieso leuchtet das FrontLED nicht
lg
radbruch
21.11.2010, 13:41
Init(); vergessen...
ja genau danke
was ich auch nicht verstehe ist auf der Anleitung seteht dass der WERT 0 hell ist und 1023 ganz dunkel beide werte können nicht erreicht werden
aber
wenn ich sie sensoren zum fenster halte habe ich den wert von ca. 1000
soll aber eher 0 sein weil es hell ist oder
Täsche ich mich ?
Das ist bei der Odometrie so.
Die Liniensensoren sind genau andersherum, 0 dunkel, 1023 hell
ok weil in der ANleitung steht es anders
aber egal für mich zählt die realität
mfg
the.speciali
21.11.2010, 18:46
Init(); vergessen...
Ohh entschuldigung, mein fehler :)
Ich hoffe aber das es jetzt mal funktioniert :)
beste Grüße
the.speciali
ja danke ist voll super zu wissen wo welcher wert ist
mfg
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.