INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Tacho
18.05.2015, 19:10
Beitrag #1
Tacho
Hi zusammen,
ich bin gerade dabei mein altes pocketbike flott zu machen.
Dabei möchte ich auch einen Tacho einbauen. Ich habe bereits einen Code den ich gerade für meine Zwecke umschreibe, da ich den Temperatursensor durch einen Umdrehungssensor für den Motor ersetzte. leider zeigt mir, wenn ich auf überprüfen gehe, der Computer einen Fehler an. In der Zeile OneWire oneWire (ONE_WIRE_BUS);
genauso bei DallasTmperature, Servo myservo; und lcd.begin(16, 2);</p><p>

/*
##################################################


Copyright by Nikodem Bartnik june 2014


##################################################
*/




//librarys
#include < Servo.h>
#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>


#define ONE_WIRE_BUS 1
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);


//LCD display pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
//servo name
Servo myservo;
//definition of variables
long previous, triptime, time, impulses;
float speedometer, dist, aspeed;
int servo;
int screen=1;
//If you have other circuit of wheel you need change it
float circuit=2.0;
double temperature;


void setup() {


lcd.begin(16, 2);</p><p>
pinMode(A0, INPUT);
pinMode(A1, INPUT);

//servo definition and setting the tachometer to 0
myservo.attach(6);
myservo.write(180);
lcd.print("Bike tachometer");
delay(1000);
lcd.setCursor(5, 1);
lcd.print("V 1.0");
delay(4000);
lcd.clear();
delay(500);
lcd.setCursor(0, 0);
lcd.print("Dist:");
}




void loop() {
//if wheel turns
if(analogRead(A0)>=300){
//number of turns++
impulses++;
//count turn time
time=(millis()-previous);
//count speed
speedometer=(circuit / time)*3600.0;
previous=millis();
Tachometer();
delay(100);
}

Lcd();
}

//display speed on tachometer
void Tachometer(){
//map speed 0-180 to servo
speedometer=int(speedometer);
servo = map(speedometer, 0, 72, 180, 0);
//setup servo
myservo.write(servo);
}



void Lcd(){
//when button is clicked
if(analogRead(A1)>=1010){
lcd.clear();
screen++;
if(screen==5){
screen=1;
}
}

if(screen==1){
//displays speed
lcd.setCursor(0, 1);
lcd.print("Speed:");
lcd.setCursor(7, 1);
lcd.print(speedometer);
lcd.print("km/h");
}

if(screen==2){

//displays themperature
temperature=sensors.getTempCByIndex(0);
sensors.requestTemperatures();
lcd.setCursor(0, 1);
lcd.print("Temp:");
lcd.setCursor(7, 1);
lcd.print(temperature);
lcd.print(" C");
}

if(screen==3){
//displays averagr speed
aspeed=dist/(millis()/1000.0)*3600.0;
lcd.setCursor(0, 1);
lcd.print("A.speed:");
lcd.setCursor(8, 1);
lcd.print(aspeed);
lcd.print("km/h");
}

if(screen== 4){
//diplays trip time
triptime=millis()/60000;

lcd.setCursor(0, 1);
lcd.print("Time:");
lcd.setCursor(7, 1);
lcd.print(triptime);


}


lcd.setCursor(0, 0);
lcd.print("Dist:");
//calculation of the distance
dist=impulses*circuit/1000.00;
//dislays distance
lcd.setCursor(6,0);
lcd.print(dist);
lcd.print("km");
}
ich hoffe ihr könnt mir dabei helfen.
MFG Jim
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.05.2015, 20:17
Beitrag #2
RE: Tacho
Das Programm sagt bei dem Lcd ( expected primäre-Expressionismus befire '<'Token) und bei den anderen Not named
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.05.2015, 09:34 (Dieser Beitrag wurde zuletzt bearbeitet: 19.05.2015 09:36 von Scherheinz.)
Beitrag #3
RE: Tacho
(18.05.2015 20:17)Jim schrieb:  Das Programm sagt bei dem Lcd ( expected primäre-Expressionismus befire '<'Token) und bei den anderen Not named

Das kommt wohl von Zeile 43:
lcd.begin(16, 2);</p><p>

Da hast du beim Kopieren von der Internetseite HTML Tags mitkopiert
lcd.begin(16, 2);

Außerdem würde ich noch das Delay aus der Loop rausschmeißen.

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.05.2015, 14:17
Beitrag #4
RE: Tacho
Danke,
ich werde auch den Temperatursensor raushauen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Einfacher Tacho für niedrige Geschwindigkeiten – Code optimieren Bastelo 2 261 12.10.2016 20:31
Letzter Beitrag: Bastelo
  Digital-Tacho Jim 11 2.709 13.02.2015 19:39
Letzter Beitrag: Jim

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste