Hallo, ich versuche im Rahmen eines Schulprojektes einen Schrittmotor anzusteuern. Dazu habe ich mir überlegt das es schön sein könnte die Vref Spannung über die ich den Maximalen Motorstrom bestimmen kann über ein Display (2x16 Zeichen) auszugeben. Das ansteuern des Displays bzw. des Motors funktioniert wunderbar. Nur bekomme ich kein vernünftiges ergebnis aus der DATA Leitung des AD - Converters. Nach einigem ausprobieren habe ich herrausgefunden das der Port Pin P2.7 an dem ich DATA angeschlossen habe das Signal auf Low zieht. Als gegenmaßnahme habe ich versucht vorher den Port auf 1 zu setzen damit das Potential intern nicht mehr auf Masse gezogen wird. Jedoch wird ich jetzt ein ständiges High signal am Port ausgelesen. Meine frage ist nun ob mir villeicht jemand sagen könnte wie ich dieses Problem lösen könnte - am besten so das ich nicht viel an der Schaltung ändern muss da ätzen bei uns an der Schule immer etwas schwierig ist. Vielen Dank schonmal im Vorraus :-) danke mfg.: Andre F.
Ja diese Webseite hatte ich schon gefunden. Solange ich das DATA Beinchen des IC nicht mmit dem MC verbinde bekomme ich auch wunderbahre Werte wenn ich mit dem Voltmeter nachmesse. Die Werte stimmen nur nicht bzw. werden auf 0 gezogen sobal das Beinchen am Controller angeschlossen ist.
hi hier der source code für den 8051 in wickenhäuser c geschrieben: #define clock P1_B0 #define out P1_B1 #define cs P1_B2 for(;;){ c=0; P1 &= ~(1 << cs);; for(i=7;i>=0;i--) { P1 |= (1 << clock); //P1 &= ~(1 << data_out); if (P1 & (1 << out)){c |= (1<<i);} P1 &= ~(1 << clock); #asmline nop; #asmline nop; } P1 |= (1 << cs);; printf("%3d%s",c,"\n"); _wait_ms(10);} in basic gehts auch habe es auf dem elektor 89s8252flashboard probiert: 90 rem clock=1 100 rem out=2 110 rem cs 4 120 port1=255 130 port1=251 140 for k=1to 2 150 b=0 160 for i=7 to 0 step -1 170 port1=250 180 inp=port1.and.2 190 if inp =2 then b=b+2**i 200 port1=251 210 next i 220 port1=255 230 next k 231 f=int(b/100)+48 232 gosub 475 260 f=b-((f-48)*100) 262 f=int(f/10)+48 263 gosub 477 264 f=b-int(b/100)*100 - (f-48)*10 +48 278 gosub 477 279 goto 140 280 end die gosubs sind für die ausgabe auf dem lcd braucht man nicht der gelesene wert steht in variable b. gruss ralf
Vielen Dank für die Antwort, bei mir lag das Problem wie sich später herrausgestellt hat daran das der MC oder der AD-Converter das Signal am Data ausgang nach sehr kurzer Zeit auf High zieht, das Signal jedoch wenn man schnell genug ist ausgelesen werden kann, Vorher hatte ich immer eine gewisse Verzögerung bevor ich das Signal asugewertet habe. Die Lösung werde ich aber auch einmal ausprobieren da meine nicht die beste ist. Nochmal Dankeschön.
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.