hallo, ich suche in bascom eine routine für das compassmodul cmps03 .
ich möchte es mit pwm auslesen.
mfg pebisoft
Druckbare Version
hallo, ich suche in bascom eine routine für das compassmodul cmps03 .
ich möchte es mit pwm auslesen.
mfg pebisoft
Hallo pebisoft!
Das PWM-Signal genau zu lesen ist relativ aufwendig. Müsstest die positive Flanke des Signals als Trigger nehmen und bei der negativen Flanke die Zeit ermitteln und diese als Wert verwenden. Dazu muss man mit dem internen Timer programmieren.
Ich würde ein RC-Glied nehmen zur Analogwertbildung und das an einen AD-Input legen. Dann muss man nur einfach den AD-Wert lesen lassen was sehr einfach ist.
Grüsse Wolfgang
Warum willst du es nciht per I2C versuchen, wenn das Modul schon eine so hohe Genauigkeit aufweist, sollte man doch versuchen diese zu nutzen.
MFG Moritz
Das verstehe ich auch nicht, PWM ist ja im Grunde maximal 8-Bit, I2C kann 16-Bit (3600 Stufen). Schade um das Teil, aber vieleicht genügt es ja oder es gibt keien Möglichkeit das mit dm I2C irgendwie zu realisieren weils der Controller nicht zulässt ;)Zitat:
Zitat von RCO
Grüsse Wolfgang
hallo, habe euch verstanden. wie kann ich dieses modul mit i2c in bascom betreiben. weiss zur zeit aber keine rouitne, wer weiss, wie es weitergeht, für einen lösungsansatz wäre ich dankbar. muss ich hier auch wie beim i2c eeprom 24c256 ein pullups von 10k zwischen scl sca anklemmen.
mf gpebisoft
Zum einen, mit BASCOM kenne ich mich direkt nicht aus da ich nicht damit arbeite. Aber ich weis das es da fertige Bibliotheken gibt. Vieleicht kann dir da ein anderer BASCOM-User weiterhelfen. Die Pull-Up's brauchst du jedenfalls immer im I2C-Bus. Ohne die wird das ACK nie funktionieren.Zitat:
Zitat von pebisoft
Grüsse Wolfgang
hallo, das kompassmodul läuft jetzt zu 99% genauigkeit.
am besten ist wenn man den vorgeschlagenen druckschalter zwischen anschluss 6 und masse 9
legt. ich habe den druckschalter zwischen gelassen, wenn mal wieder kalibriert werden
muss. diese kalibrierung ist einfacher als über i2c, kann während der laufenden abfrage
des moduls gemacht werden. ich gebe jetzt über das easy-radiomodul vom arbeitsplatz
eine gradzahl vor und der robby hält gemäss programm die richtung innerhalb der vorgabe
(+-5, ist ca +- 0.5 grad). macht richtig spass. unter "album" roboterbilder" ist ein bild
vom küchenbrettroboter. wer fragen hat, soll fragen.
Declare Sub K_werte(byval Ee_adresse As Byte)
$regfile = "m16def.dat"
$crystal = 8000000
$baud = 19200
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , Rs = Portc.5 , E = Portc.4
Config Lcd = 16 * 2
Config Scl = Portb.3
Config Sda = Portb.4
Dim Daten As Byte , Temp As Byte
Dim Ausgabe As Word
Dim Adresse As Byte
Adresse = 2
Do
Call K_werte(adresse)
Print Ausgabe
Waitms 500
Loop
End
Function K_werte(byval Ee_adresse As Byte)
Disable Interrupts
I2cstart
I2cwbyte &B11000000 , Ack
I2cwbyte Ee_adresse
Waitms 10
I2cstart
I2cwbyte &B11000001 , Ack
I2crbyte Daten , Ack
I2crbyte Temp , Nack
Ausgabe = Daten * 256
Ausgabe = Ausgabe + Temp
I2cstop
Waitms 10
Enable Interrupts
End Function
mfg pebisoft
Das sieht gut aus, da scheint jemand ziemlich am gleichen Thema zu arbeiten siehe hier:Zitat:
wer fragen hat, soll fragen.
https://www.roboternetz.de/phpBB2/ze...?p=50294#50294
mfG
Lance
Nein, ich habe es gemerkt, das ist ja das gleiche, ich bin nur durcheinander gekommen, weil die gleiche Nachricht an verschiedenen Stellen steht.Zitat:
Das sieht gut aus, da scheint jemand ziemlich am gleichen Thema zu arbeiten siehe hier:
Lance
https://www.roboternetz.de/phpBB2/ze...?p=50296#50296
https://www.roboternetz.de/phpBB2/ze...?p=50297#50297
https://www.roboternetz.de/phpBB2/ze...?p=50294#50294