Ich bin jetzt wieder ein wenig weiter gekommen
durch diesen beitrag LCD umschalten - Deutsch - Arduino Forum
ABER
Wie muss ich das machen??
Ich hab ja das void draw und in dem thread wird das aber im void loop auf das display geschrieben.
Also brauche ich bitte jemand sagt wie ich das machen muss
if (counter ==1)
u8g.print(void draw);
if (counter ==2)
u8g.print(void draw2);
}
usw
Funktioniert ja leider nicht
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <TinyGPS.h>
#include <U8glib.h>
#include <Wire.h>
#include <TimeLib.h>
U8GLIB_ST7920_128X64 u8g(13, 11, 10, U8G_PIN_NONE);
#define DEBUG //Nur zur Fehlersuche aktivieren
#define tasterPin 2 //Taster an D4 und GND
#define debounce_delay 15 //Entprellzeit für den Taster in ms
bool led_state, tasterState, tasterState_alt;// Variablendeklaration (global)
uint8_t counter; //Zählt wie oft die Taste gedrückt wurde
SoftwareSerial mySerial(0, 1);
TinyGPS gps;
TinyGPSPlus gps2;
static const uint32_t GPSBaud = 9600;
void gpsdump(TinyGPS &gps);
void printFloat(double f, int digits = 2);
char Time[] = "TIME: 00:00:00";
char Date[] = "DATE: 00-00-2000";
byte last_second, Second, Minute, Hour, Day, Month;
int Year;
void setup()
{
Serial.begin(9600);
pinMode(tasterPin, INPUT_PULLUP);
// set the data rate for the SerialPort(use SoftwareSerial port on Arduino UNO)
delay(1000);
u8g.setFont(u8g_font_unifont);
u8g.firstPage();
do {
u8g.setPrintPos(35, 20);
u8g.print("Welcome ");
u8g.setPrintPos(55, 40);
u8g.print("to");
u8g.setPrintPos(15, 60);
u8g.print("your journey");
} while ( u8g.nextPage() );
}
void draw(float lat, float lon, unsigned long l_date, unsigned long l_time, float f_alt) {
u8g.setFont(u8g_font_6x10);
u8g.firstPage();
do {
u8g.setPrintPos(0, 32);
u8g.print("Lat: ");
u8g.print(lat,4); // latitude
u8g.setPrintPos(0, 42);
u8g.print("Long: ");
u8g.print(lon,4); // longitude
u8g.setPrintPos(0, 10);
u8g.print("Datum: ");
u8g.print(l_date); // date(ddmmyy, UTC 0)
u8g.setPrintPos(0, 22);
u8g.print("Uhr: ");
u8g.print(gps2.time.value());
u8g.setPrintPos(0, 62);
u8g.print("Alt: ");
u8g.print(f_alt); // altitude(m)
u8g.setPrintPos(0, 52);
u8g.print("KM/H: ");
u8g.print(gps.f_speed_kmph());
u8g.setPrintPos(85, 10);
u8g.print("Sat: ");
u8g.print(gps.satellites());
} while ( u8g.nextPage() );
}
void loop() // run over and over
{
bool newdata = false;
unsigned long start = millis();
float flat, flon, falt;
unsigned long date, time, age;
// Every 2 seconds we print an update
while (millis() - start < 5000) {
if (Serial.available() && gps.encode(Serial.read())) {
newdata = true;
// break; // uncomment to print new data immediately!
}
}
if (newdata) {
gps.satellites();
gps2.time;
gps.f_get_position(&flat, &flon, &age);
gps.get_datetime(&date, &time, &age);
falt = gps.f_altitude();
draw(flat, flon, date, time, falt);
}
}