Snelheidmeter modelbaan met het Faller Car System
7 berichten
• Pagina 1 van 1
Snelheidmeter modelbaan met het Faller Car System
Dag allemaal,
ik wil voor een modelbaan met auto's een snelheidsmeter maken.
Inmiddels ben ik een aardig eind op weg maar het lukt mij niet om de "RPM" in mijn display te krijgen. (de overige tekst wel)
Ik heb de code hieronder erbij gezet.
Willen jullie kijken waar het mis gaat, en eventueel een oplossing geven?
BVD.
#include <SPI.h>
#include <Wire.h>
#include <Arduino.h>
#include <U8g2lib.h>
U8G2_SSD1306_64X32_1F_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
float value=0;
float rev=0;
int RPM,count=0;
int oldtime=0;
int time;
void isr() //interrupt service routine
{
rev++;
count++;
}
void setup() {
u8g2.begin();
u8g2.clearBuffer(); // clear the internal memory
attachInterrupt(0, isr,RISING); //attaching the interrupt
}
void loop() {
delay(500);
detachInterrupt(0); //detaches the interrupt
time=millis()-oldtime; //finds the time
RPM=(rev/time)*41000; //calculates rpm
oldtime=millis(); //saves the current time
rev=0;
for (int a = 999; a >= 0; --a)
attachInterrupt(0,isr,RISING);
u8g2.clearBuffer(); // clear the internal memory
u8g2.setFont(u8g2_font_t0_11_tf); // choose a suitable font
u8g2.drawStr(0, 10, "Sie Farhen"); // write something to the internal memory
u8g2.drawStr(20, 30, "Km/uur");
u8g2.print(RPM)
u8g2.sendBuffer(); // transfer internal memory to the display
delay(1000);
}
ik wil voor een modelbaan met auto's een snelheidsmeter maken.
Inmiddels ben ik een aardig eind op weg maar het lukt mij niet om de "RPM" in mijn display te krijgen. (de overige tekst wel)
Ik heb de code hieronder erbij gezet.
Willen jullie kijken waar het mis gaat, en eventueel een oplossing geven?
BVD.
#include <SPI.h>
#include <Wire.h>
#include <Arduino.h>
#include <U8g2lib.h>
U8G2_SSD1306_64X32_1F_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
float value=0;
float rev=0;
int RPM,count=0;
int oldtime=0;
int time;
void isr() //interrupt service routine
{
rev++;
count++;
}
void setup() {
u8g2.begin();
u8g2.clearBuffer(); // clear the internal memory
attachInterrupt(0, isr,RISING); //attaching the interrupt
}
void loop() {
delay(500);
detachInterrupt(0); //detaches the interrupt
time=millis()-oldtime; //finds the time
RPM=(rev/time)*41000; //calculates rpm
oldtime=millis(); //saves the current time
rev=0;
for (int a = 999; a >= 0; --a)
attachInterrupt(0,isr,RISING);
u8g2.clearBuffer(); // clear the internal memory
u8g2.setFont(u8g2_font_t0_11_tf); // choose a suitable font
u8g2.drawStr(0, 10, "Sie Farhen"); // write something to the internal memory
u8g2.drawStr(20, 30, "Km/uur");
u8g2.print(RPM)
u8g2.sendBuffer(); // transfer internal memory to the display
delay(1000);
}
Advertisement
Re: Snelheidmeter modelbaan met het Faller Car System
Wat ik begrijp uit de github reference is dat de functie print alleen text accepteerd.
Een integer zal dus eerst naar een char string moeten worden omgezet.
Zie:
https://github.com/olikraus/u8g2/wiki/u8g2reference#print
Een integer zal dus eerst naar een char string moeten worden omgezet.
Zie:
https://github.com/olikraus/u8g2/wiki/u8g2reference#print
Re: Snelheidmeter modelbaan met het Faller Car System
maak er (RPM,DEC) van dan rint hij decimaal.
zie voor beeld zoals dat in de reference staat.
zie voor beeld zoals dat in de reference staat.
paul deelen
shooter@home.nl
shooter@home.nl
Re: Snelheidmeter modelbaan met het Faller Car System
Dag, ik heb er (ROM,DEC) van gemaakt, maar de gemeten snelheid komt nog niet op het display!
Andere opties?
Andere opties?
Re: Snelheidmeter modelbaan met het Faller Car System
Ik heb de code aangepast, het compileren gaat goed maar als ik de code upload dan komt de meting nog niet op het scherm.
Nog andere ideeen?
Nog andere ideeen?
Re: Snelheidmeter modelbaan met het Faller Car System
shooter schreef:maak er (RPM,DEC) van dan rint hij decimaal.
zie voor beeld zoals dat in de reference staat.
Heb ik gedaan, maar de snelheid wordt nog niet geprint op het display.
Nog andere opties?
Re: Snelheidmeter modelbaan met het Faller Car System
Dag, inmiddels is het gelukt om hem aan de praat te krijgen, bedankt voor jullie hulp/tips...
#include <SPI.h>
#include <Wire.h>
#include <Arduino.h>
#include <U8g2lib.h>
U8G2_SSD1306_64X32_1F_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
float value=0;
float rev=0;
int RPM,count=0;
int oldtime=0;
int time;
void isr() //interrupt service routine
{
rev++;
count++;
}
void setup() {
u8g2.begin();
u8g2.clearBuffer(); // clear the internal memory
attachInterrupt(0, isr,RISING); //attaching the interrupt
}
void loop() {
delay(500);
detachInterrupt(0); //detaches the interrupt
time=millis()-oldtime; //finds the time
RPM=(rev/time)*76000; //calculates rpm
oldtime=millis(); //saves the current time
rev=0;
for (int a = 999; a >= 0; --a)
attachInterrupt(0,isr,RISING);
u8g2.clearBuffer(); // clear the internal memory
u8g2.setFont(u8g2_font_t0_12_tf); // choose a suitable font
u8g2.drawStr(0, 10, "Sie Farhen"); // write something to the internal memory
u8g2.drawStr(20, 30, "Km/uur");
u8g2.setCursor(0, 32);
u8g2.print(RPM);
RPM = RPM - 1;
u8g2.sendBuffer(); // transfer internal memory to the display
delay(1000);
}
#include <SPI.h>
#include <Wire.h>
#include <Arduino.h>
#include <U8g2lib.h>
U8G2_SSD1306_64X32_1F_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
float value=0;
float rev=0;
int RPM,count=0;
int oldtime=0;
int time;
void isr() //interrupt service routine
{
rev++;
count++;
}
void setup() {
u8g2.begin();
u8g2.clearBuffer(); // clear the internal memory
attachInterrupt(0, isr,RISING); //attaching the interrupt
}
void loop() {
delay(500);
detachInterrupt(0); //detaches the interrupt
time=millis()-oldtime; //finds the time
RPM=(rev/time)*76000; //calculates rpm
oldtime=millis(); //saves the current time
rev=0;
for (int a = 999; a >= 0; --a)
attachInterrupt(0,isr,RISING);
u8g2.clearBuffer(); // clear the internal memory
u8g2.setFont(u8g2_font_t0_12_tf); // choose a suitable font
u8g2.drawStr(0, 10, "Sie Farhen"); // write something to the internal memory
u8g2.drawStr(20, 30, "Km/uur");
u8g2.setCursor(0, 32);
u8g2.print(RPM);
RPM = RPM - 1;
u8g2.sendBuffer(); // transfer internal memory to the display
delay(1000);
}
7 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 65 gasten