Hallo,
Ich habe ein 10k Poti an den A2 Anschluss beim Arduino DUE angeklemmt
und lese den Wert aus. Durch ein mapping gibt er mir den Wert von 0 bis
100 aus, den ich mir auch auf einem I2C Display anzeigen lasse.
Leider habe ich keinen hohen IQ in C++ Programmierung wenn die mit
vielen Bedingungen einhergehen muss.
Und zwar läuft der Arduino DUE als HID Keyboard. Ich suche eine Code
Hilfe bei dem wenn ich den Poti Wert erhöhe alle 5 Werte einmal einen
Keyboard.press / Keyboard.release auslöst z.b. "A" bis er den wert 100
erreicht hat. Also bei 5, bei 10, bei 15, bei 20 etc....
und natürlich auch beim zurückdrehen des Potis. Das der Arduino dann
z.B. einmal ein "B" auslöst. von 100 zurück bei 95, 90, 85 etc.....
Könnte dies zwar mit einem Encoder relativ einfach machen würde aber
gerne ein Poti nehmen damit die Haptik stufenlos ist.
Hier mein Anfangscode zum Auslesen des Poti Wertes:
------------------------------------------------------------
1 | #include <Wire.h>
|
2 | #include <LiquidCrystal_I2C.h>
|
3 | #include <Keyboard.h>
|
4 | #include <HID.h>
|
5 |
|
6 | LiquidCrystal_I2C lcd(0x27,16,2);
|
7 |
|
8 |
|
9 | int pot1 = A2;
|
10 | int pot1_wert = 0;
|
11 | void setup() {
|
12 |
|
13 | Serial.begin(9600);
|
14 | lcd.init();
|
15 | lcd.setCursor(0,0);
|
16 | lcd.print("# Volume #");
|
17 | lcd.backlight();
|
18 | Keyboard.begin();
|
19 |
|
20 | }
|
21 |
|
22 | void loop() {
|
23 | pot1_wert = analogRead(pot1);
|
24 | pot1_wert = map(pot1_wert, 0, 1023, 0, 100);
|
25 | lcd.setCursor(7, 1);
|
26 | lcd.print(pot1_wert);
|
27 | delay(300);
|
28 | lcd.setCursor(0, 1);
|
29 | lcd.print(" ");
|
30 | Serial.print("P1 = ");
|
31 | Serial.println(pot1_wert);
|
32 | delay(100);
|
-----------------------------------------------------
Das Poti soll bei einer Software die mit Tastendruck funktioniert die
Lautstärke erhöhen bzw. verringern. 20 Tasten Anschläge Max /Min Volume.
Vielen Dank der mir dabei helfen könnte.