Hallo,
zuerst hier mein Code:
1 | #include <LiquidCrystal.h>
|
2 | LiquidCrystal lcd(7, 8, 9, 10, 11 , 12);
|
3 |
|
4 | int motor = 6;
|
5 | int poti = A0;
|
6 | int wert = 0;
|
7 |
|
8 | void setup()
|
9 | {
|
10 | lcd.begin(16, 2);
|
11 | lcd.setCursor(0,0);
|
12 | lcd.write("Geschwindigkeit: ");
|
13 | pinMode(motor, OUTPUT);
|
14 | }
|
15 | void loop() {
|
16 |
|
17 | wert = analogRead(poti);
|
18 | delay(100);
|
19 | analogWrite(motor, wert / 4);
|
20 | delay(100);
|
21 | lcd.setCursor(0,1);
|
22 | delay(100);
|
23 | lcd.print(wert / 20);
|
24 | delay(100);
|
25 |
|
26 | }
|
Mit meinem Arduino und einem Mosfet wird ein Motor angetrieben. Drehzahl
lässt sich über ein Poti bestimmen und die aktuelle Geschwindigkeit wird
auf dem Display ausgegeben.
Erreicht der Motor nun eine zweistellige Geschwindigkeit und wird das
Poti dann ganz nach links gedreht, so bleibt die zweite Zahl einfach auf
dem Display stehen.
Bin ich z.B. bei 43 und drehe schnell nach links, so steht dann auf dem
Display 03.
Wie kann ich das beheben? Und gibt es sonst noch etwas am Code, was man
verbessern kann?