Snelheidmeter modelbaan met het Faller Car System

Arduino specifieke Software
Berichten: 8
Geregistreerd: 28 Feb 2021, 20:42

Snelheidmeter modelbaan met het Faller Car System

Berichtdoor T terBeek » 28 Feb 2021, 20:53

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);

}

Advertisement

Gebruikers-avatar
Berichten: 12
Geregistreerd: 24 Jan 2021, 20:37
Woonplaats: Bovenkarspel

Re: Snelheidmeter modelbaan met het Faller Car System

Berichtdoor weirdweb » 01 Mrt 2021, 13:45

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

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Snelheidmeter modelbaan met het Faller Car System

Berichtdoor shooter » 01 Mrt 2021, 20:40

maak er (RPM,DEC) van dan rint hij decimaal.
zie voor beeld zoals dat in de reference staat.
paul deelen
shooter@home.nl

Berichten: 8
Geregistreerd: 28 Feb 2021, 20:42

Re: Snelheidmeter modelbaan met het Faller Car System

Berichtdoor T terBeek » 01 Mrt 2021, 22:57

Dag, ik heb er (ROM,DEC) van gemaakt, maar de gemeten snelheid komt nog niet op het display!
Andere opties?

Berichten: 8
Geregistreerd: 28 Feb 2021, 20:42

Re: Snelheidmeter modelbaan met het Faller Car System

Berichtdoor T terBeek » 01 Mrt 2021, 23:07

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?

Berichten: 8
Geregistreerd: 28 Feb 2021, 20:42

Re: Snelheidmeter modelbaan met het Faller Car System

Berichtdoor T terBeek » 01 Mrt 2021, 23:34

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?

Berichten: 8
Geregistreerd: 28 Feb 2021, 20:42

Re: Snelheidmeter modelbaan met het Faller Car System

Berichtdoor T terBeek » 02 Mrt 2021, 00:08

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);

}

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 17 gasten