Fint nok, men du burde overveje at installere en Real Time Clock, hvis det er vigtigt at timingen er rigtig og stabil
Ahh, jeg har haft problemer med en båd motor omdejningstæller, da der er store temperaturændringer. Problemet var at timingen til indsprøjtningen ændrede sig, i antal clock cycler selv om motoren havde en konstant hastighed. Men det var et meget tidskritisk system, en rally computer vil nok ikke have lignende problemer. Jeg løste problemet med en RTC, hvor hvert sekund "kalibrerede" tælleren sig.
Jeg har ikke noget at bruge en nøjagtig tids angivelse, det som jeg skal måle er afstand
int ledpin = 13;#include <Wire.h> // indlæser I2C bibloteket#include <LiquidCrystal_I2C.h> // indlæser er specielt I2C BiblotekLiquidCrystal_I2C myDisplay(0X3F,16,2); // definere Displayet adr & karekter antal samt linger void setup() { pinMode (ledpin,OUTPUT); myDisplay.init(); myDisplay.backlight(); myDisplay.print("ARDUINO 1,2"); delay(1000);}void loop() {digitalWrite (ledpin,HIGH);// For onbord LED til at blinkedelay (1000);digitalWrite (ledpin,LOW);delay (1000);myDisplay.clear();delay(500);myDisplay.print("TEST");delay(500);myDisplay.setCursor(0,8);myDisplay.print("TEST");delay(500);}
Bare lige en tanke.Ville det være noget værd med en led på hverside, der så lyser i den side det næste sving kommer?Som sagt bare en tanke :-)
Det med at programmdele forstyrrer hinanden har jeg også oplevet.Så en løsning kan være disse, jeg henviser til linkene da det er meget svært at forklare.Det hænger sammen at en arduino(microcontroller) ikke kan eller har svært med at multitaske.Se sidste link.Håber at det hjælper dig videre.http://www.arduino.cc/en/Tutorial/BlinkWithoutDelayhttp://www.instructables.com/id/Intermediate-Arduino-Inputs-and-Outputs/?ALLSTEPShttp://www.baldengineer.com/millis-tutorial.html
const int ledPin = 13;int ledState = LOW; long previousMillis = 0;long interval = 1000; #include <Wire.h> // indlæser I2C bibloteket#include <LiquidCrystal_I2C.h> // indlæser er specielt I2C BiblotekLiquidCrystal_I2C myDisplay(0X3F,16,2); // definere Displayet adr & karekter antal samt linger void setup() { pinMode(ledPin, OUTPUT); myDisplay.init(); myDisplay.backlight(); myDisplay.print("ARDUINO 1,2"); delay(1000);}void loop() { unsigned long currentMillis = millis(); if(currentMillis - previousMillis > interval) { previousMillis = currentMillis; if (ledState == LOW) ledState = HIGH; else ledState = LOW; digitalWrite(ledPin, ledState);myDisplay.clear();delay(500);myDisplay.print("TEST");delay(500);myDisplay.setCursor(0,8);myDisplay.print("TEST");delay(500);}}