Forum: Mikrocontroller und Digitale Elektronik Fragen zum Atmega 2560


von Dirk K. (diac)


Lesenswert?

Ich habe das Arduino Mega 2560 mit 4884 Grafik-Display. Tolle Sache 
dat...
An Pin 14 und 15 Hängt eine LED, die ich blinken lasse. Die Zeitwerte 
werden im Display angezeigt.
Jetzt möchte ich aber, das wenn ich eine Taste drücke, der Zeitwert 
erhöht oder niedriger wird.

Beispiel: Zeitwert 1000 (also eine Sekunde) Tastendruck---> +1

Dann Soll der Zeitwert also 1001 sein und auch im Display so angezeigt 
werden.

Mit einer weiteren Taste das gleiche, nur -1.

So weit bin ich gekommen:
1
#include "LCD4884.h"
2
int pina = 1000; //Variable für die Zeit
3
int pinb = 1000;
4
char string[10];
5
void setup() 
6
7
{  
8
  lcd.LCD_init();
9
  lcd.LCD_clear(); 
10
  pinMode(14, OUTPUT);
11
   pinMode(15, OUTPUT);
12
}
13
14
void loop() 
15
{       
16
itoa(pina, string, 10);
17
lcd.LCD_write_string(0, 0, "Pin14:", MENU_NORMAL);
18
lcd.LCD_write_string(50, 0, string, MENU_NORMAL);
19
itoa(pinb, string, 10);
20
lcd.LCD_write_string(50, 2, string, MENU_NORMAL);
21
lcd.LCD_write_string(0, 2, "Pin15:", MENU_NORMAL);
22
23
digitalWrite(14, HIGH);  delay(pina);  digitalWrite(14, LOW); 
24
digitalWrite(15, HIGH);  delay(pinb);  digitalWrite(15, LOW);
25
26
}
Auf dem Display befindet sich ein Joystick, der für diese Aufgabe 
benutzt werden soll.

Kann mir jemand helfen :-)))) ?????

Gruß
Dirk

von Electronics'nStuff (Gast)


Lesenswert?

Hi!

Ist ja schon ganz in Ordnung, klappt ja bis jetzt.
Ich verstehe nicht ganz, was dir Mühe macht?


Zuerst Eingang initalisieren (der vom Joystick) und dann sieht es in 
etwa so aus:

if (taster_1)
{
  pina--;            //Variable wird um 1 reduziert
  while (taster_1){} //Warten bis Taster logelassen wird
}

if (taster_2)
{
  pina++;            //Variable wird um 1 reduziert
  while (taster_2){} //Warten bis Taster logelassen wird
}

von Dirk K. (diac)


Lesenswert?

Ups, das ging ja schnell....
Mühe macht mir, das ich mich jetzt mit 39 Jahren mit der Programmierung 
befasse :-(
Mit der Elektronik habe ich keine Probleme, aber in Sachen MC bin ich 
noch ganz am Anfang. Bücher sind aber unterwegs :-)

Vielen Dank mal für den Tip, probier ich gleich mal aus....

von Dirk K. (diac)


Lesenswert?

Für weitere Vorschläge immer offen....

von Karl H. (kbuchegg)


Lesenswert?

Dann würde ich mal vorschlagen, sich mal unabhängig von deinem Problem 
mit dem Joystick auf diesem Shield zu beschäftigen.

In den Verkaufsdokus steht, dass er über den Analog Pin 0 ausgelesen 
wird. Daher die Frage: Welche werte kommen da daher? Wie verändern sich 
die, wenn der Joystick bewegt wird?

Danach weiß macn schon mehr und kann sich überlegen, wie man gezielt 
eine Art 'Tastenbetätigung' mit dem Joystick realisiert. Und wenn man 
dann darüber Bescheid weiß, dann baut man das ins richtige Programm ein.

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
Noch kein Account? Hier anmelden.