Hallo Leute , ich versuche gerade den Drehgeber MLX90316 (SPI version) mit den µC : Atmega16 als auszuwerten allerdings bekomme ich unveränderlische Werte nicht wie es sein soll, als Transistor verwende ich BUK9535-55A, und die Auswertungsergebnisse sehen so aus : 1.Byte : 01111111 2.Byte : 11111111 3.Byte : 11111111 4.Byte : 11111111 5.Byte : 11111111 6.Byte : 11111111 7.Byte : 11111111 8.Byte : 11111111 9.Byte : 11111111 10.Byte : 11111111 ich habe das Code vereinfacht um die ersten daten zubekommen, es sieht so aus : //==================================================== PORTB &=~(1<<CS); _delay_us(13); SPDR = 0xaa; while (!(SPSR&(1<<SPIF))); SPDR = 0x00; while (!(SPSR&(1<<SPIF))); r_daten[0] = SPDR; x0 = r_daten[0]; _delay_us(13); SPDR = 0xff; while (!(SPSR&(1<<SPIF))); SPDR = 0x00; while (!(SPSR&(1<<SPIF))); r_daten[1] = SPDR; x1 = r_daten[1]; _delay_us(13); SPDR = 0xff; while (!(SPSR&(1<<SPIF))); SPDR = 0x00; while (!(SPSR&(1<<SPIF))); r_daten[2] = SPDR; x2 = r_daten[2]; _delay_us(13); SPDR = 0xff; while (!(SPSR&(1<<SPIF))); SPDR = 0x00; while (!(SPSR&(1<<SPIF))); r_daten[3] = SPDR; x3 = r_daten[3]; _delay_us(13); SPDR = 0x00; while (!(SPSR&(1<<SPIF))); SPDR = 0x00; while (!(SPSR&(1<<SPIF))); r_daten[4] = SPDR; x4 = r_daten[4]; _delay_us(13); SPDR = 0x00; while (!(SPSR&(1<<SPIF))); SPDR = 0x00; while (!(SPSR&(1<<SPIF))); r_daten[5] = SPDR; x5 = r_daten[5]; _delay_us(13); SPDR = 0x00; while (!(SPSR&(1<<SPIF))); SPDR = 0x00; while (!(SPSR&(1<<SPIF))); r_daten[6] = SPDR; x6 = r_daten[6]; _delay_us(13); SPDR = 0x00; while (!(SPSR&(1<<SPIF))); SPDR = 0x00; while (!(SPSR&(1<<SPIF))); r_daten[7] = SPDR; x7 = r_daten[7]; _delay_us(13); SPDR = 0x00; while (!(SPSR&(1<<SPIF))); SPDR = 0x00; while (!(SPSR&(1<<SPIF))); r_daten[8] = SPDR; x8 = r_daten[8]; _delay_us(13); SPDR = 0x00; while (!(SPSR&(1<<SPIF))); SPDR = 0x00; while (!(SPSR&(1<<SPIF))); r_daten[9] = SPDR; x9 = r_daten[9]; _delay_us(13); PORTB|=(1<<CS); _delay_ms(1); //==================================================== Das müsste doch eigentlich funktionieren, oder? Allerdings bin ich auch kein so erfahrener programmierer und wäre froh wenn mir da jemand tips geben kann! Vielen Dank
ich habe hier einen kleines Fehler beim tippen gemacht, die Werte die ich von MOSI sende sehen soaus: SPDR = 0xaa; SPDR = 0xff; SPDR = 0xff; SPDR = 0xff; SPDR = 0xff; SPDR = 0xff; SPDR = 0xff; SPDR = 0xff; SPDR = 0xff; SPDR = 0xff; an Kritik bin ich auch interessiert. danke im vorraus
Ich bin gerade beim Suchen nach Ideen wie man einen Schrittmotor mithilfe eines AVR Prozessors auf einen vorgegebenen Winkel stellen kann auf den MLX90136 gestossen, und dann beim Googeln auf Deinen Beitrag. Bist Du weiter gekommen? Vielleicht hilft ein anderer Beitrag, den ich beim Googeln fand: http://www.anyma.ch/blogs/research/2010/04/07/very-nice-sensor-mlx90316-rotary-position-sensor/ Bei dem scheint es geklappt zu haben, und er gibt an, was der Drehgeber über SPI bekommen muss, damit er dann den Winkel ausspuckt - vielleicht hilft Dir das. Was für einen Magneten verwendest Du (und von wo bezogen)? und was für einen FET?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.