Battery indicator

Goedemorgen fcapri

Hoop dat u het examen met goed gevolg hebt doorstaan.

na uploaden;

Arduino:1.8.7 (Windows 10), Board:"Arduino Nano, ATmega328P (Old Bootloader)"

De schets gebruikt 10986 bytes (35%) programma-opslagruimte. Maximum is 30720 bytes.
Globale variabelen gebruiken 1721 bytes (84%) van het dynamisch geheugen. Resteren 327 bytes voor lokale variabelen. Maximum is 2048 bytes.
Weinig geheugen beschikbaar, er kunnen zich stabiliteitsproblemen voordoen
avrdude: ser_open(): can't open device "\\.\COM9": De time-outperiode van de semafoor is verlopen.

Probleem bij het uploaden naar het board. Zie http://www.arduino.cc/en/Guide/Troubleshooting#upload voor suggesties.

Dit rapport zou meer informatie bevatten met
"Uitgebreide uitvoer weergeven tijden compilatie"
optie aan in Bestand -> Voorkeuren.

hoe is dat op te lossen

vriendelijke groet

bordje in een andere usb geplugged?
je zal in systeembeheer eens moeten gaan kijken welke com poort u arduino krijgt, en die in de software gelijk zetten.

of eenvoudig trukje, start de arduinosoftware op zonder arduino in geplugged en ga naar 'tools' -> 'port'.
en kijk welke er in staan.
bv com1, com2, com3...

Sluit de software af, plug je arduino in en start de software opnieuw. er zal een com poort bijgekomen zijn, dat is de arduino en die moet je selecteren

je software staat nu dus om COM9 en daar vind die de arduino niet (of arduino loopt vast of die heeft een andere poort nr gekregen). als die vastloopt, kan je op reset drukken vlak voor je pc de software zal doorsturen

ik hou van werken ..., ik kan er uren naar kijken

Fcapri,

heeft nu op com 10 het uploaden voltooid

Nogmaals bedankt

a.j nieuwlaat

waarvoor hebt u examen gedaan

interne opleiding op het werk (1maand). nu in augustus begint het 2de deel voor 2maand en dan kan ik hoger gaan in functie

ik hou van werken ..., ik kan er uren naar kijken

fcapri

Hoe gaat het met u druk op het werk ?

mag ik nog 'n verzoek om hulp aan u doen ?

Ik wil graag de snelheid van mijn truck meten op 'n rollerbaan

daarvoor vond ik deze sketch;

//arduino bike speedometer w serial.print()
//by Amanda Ghassaei 2012
//https://www.instructables.com/id/Arduino-Bike-Speedometer/

/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
*/

//calculations
//tire radius ~ 13.5 inches
//circumference = pi*2*r =~85 inches
//max speed of 35mph =~ 616inches/second
//max rps =~7.25

#define reed A0//pin connected to read switch

//storage variables
int reedVal;
long timer;// time between one full rotation (in ms)
float mph;
float radius = 13.5;// tire radius (in inches)
float circumference;

int maxReedCounter = 100;//min time (in ms) of one rotation (for debouncing)
int reedCounter;

void setup(){

reedCounter = maxReedCounter;
circumference = 2*3.14*radius;
pinMode(reed, INPUT);

// TIMER SETUP- the timer interrupt allows precise timed measurements of the reed switch
//for more info about configuration of arduino timers see http://arduino.cc/playground/Code/Timer1
cli();//stop interrupts

//set timer1 interrupt at 1kHz
TCCR1A = 0;// set entire TCCR1A register to 0
TCCR1B = 0;// same for TCCR1B
TCNT1 = 0;
// set timer count for 1khz increments
OCR1A = 1999;// = (1/1000) / ((1/(16*10^6))*8) - 1
// turn on CTC mode
TCCR1B |= (1 << WGM12);
// Set CS11 bit for 8 prescaler
TCCR1B |= (1 << CS11);
// enable timer compare interrupt
TIMSK1 |= (1 << OCIE1A);

sei();//allow interrupts
//END TIMER SETUP

Serial.begin(9600);
}

ISR(TIMER1_COMPA_vect) {//Interrupt at freq of 1kHz to measure reed switch
reedVal = digitalRead(reed);//get val of A0
if (reedVal){//if reed switch is closed
if (reedCounter == 0){//min time between pulses has passed
mph = (56.8*float(circumference))/float(timer);//calculate miles per hour
timer = 0;//reset timer
reedCounter = maxReedCounter;//reset reedCounter
}
else{
if (reedCounter > 0){//don't let reedCounter go negative
reedCounter -= 1;//decrement reedCounter
}
}
}
else{//if reed switch is open
if (reedCounter > 0){//don't let reedCounter go negative
reedCounter -= 1;//decrement reedCounter
}
}
if (timer > 2000){
mph = 0;//if no new pulses from reed switch- tire is still, set mph to 0
}
else{
timer += 1;//increment timer
}
}

void displayMPH(){
Serial.println(mph);
}

void loop(){
//print mph once a second
displayMPH();
delay(1000);
}

Heb 'n magneetje in 'n band ( omtrek band 23mm )geplakt en als opnemer 'n reedcontact no

voor 'n aTtiny85 of ( indien te weinig geheugen ) 'n arduino nano
met 0.91" 128x32 oled lcd display driver ic SSD1306

sketch zo compact mogelijk voor de aTtiny85

a.j nieuwlaat

Bij voorbaat bedankt

ik heb ooit zoiets gemaakt, maar veel compacter in code. ik nam gewoon de omtrek van het wiel in de code. beetje zoals je ook met commerciele fietscomputers hebt.

weet de sketch niet meer staan, dus heb het deel gecopieerd uit een ander programma dat hetzelfde deed:

de interrupt regel: hier opletten dat je de correcte pin neemt die interrupts kan verwerken (https://www.arduino.cc/reference/en/language/functions/external-interr…)

c code:

  pinMode(speedPin, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(speedPin), speedkm, CHANGE);

de verwerkingscode

c code:

void speedkm() {
  float wielomtrek = 1540;
  unsigned long currentMillis = millis();
  /*
   tijd tussen 2 omwentelingen
   per toer = xx meter.
   xx meter / tussentijd => m/s => km/h
   km/h = (3600 / timetaken) * (wielomtrek / 1000)
   voorbeeld: 1 toer in 200ms, wielomtrek 2000mm (2m).
   3600/200 * 2000/1000 = 36km/h
  */
  if (millis() - lastspeed > 80) {
    timetaken = currentMillis - lastspeed; 
    bikespeed2 = bikespeed;
    bikespeed =  (3600 / timetaken) * (wielomtrek / 1000);
    lastspeed = currentMillis;
  }
}
ik hou van werken ..., ik kan er uren naar kijken

Begrijp ik niet helemaal
die code c

moet ik die ergens tussen de sketch invoegen of is dit de de totale sketch

als dat zo is moet ik daar nog iets aan veranderen

Gr a.j nieuwlaat

die moet je invoegen.

je moet een interupt aanmaken in je setup, dat is de pin waar je magneetsensor op zit

c code:

pinMode(speedPin, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(speedPin), speedkm, CHANGE);

en die zal telkens het magneetje passeert aan de sensor, zal die onderstaande code uitvoeren

c code:

void speedkm() {
  float wielomtrek = 1540;
  unsigned long currentMillis = millis();
  /*
   tijd tussen 2 omwentelingen
   per toer = xx meter.
   xx meter / tussentijd => m/s => km/h
   km/h = (3600 / timetaken) * (wielomtrek / 1000)
   voorbeeld: 1 toer in 200ms, wielomtrek 2000mm (2m).
   3600/200 * 2000/1000 = 36km/h
  */
  if (millis() - lastspeed > 80) {
    timetaken = currentMillis - lastspeed; 
    bikespeed2 = bikespeed;
    bikespeed =  (3600 / timetaken) * (wielomtrek / 1000);
    lastspeed = currentMillis;
  }
}

je moet dan wel even je wielomtrek correct zetten, want dit was een stuk code voor mijn fiets.
wat die doet is gewoon de tijd tussen 2 pulsen meten. en daarmee ook de omtrek van je wiel nemen.
dan weet die dus hoeveel meter je hebt afgelegd tussen een bepaalde tijd en met wat omrekenen de snelheid.

je zal zelf die code wat moeten omzetten naar jouw noden, aangezien het een deel copy was uit een bestaand programma van mij (sturing van een ebike motor waarbij ik dus ook de snelheid nodig had om die wettelijk te houden)

ik hou van werken ..., ik kan er uren naar kijken

Goedemorgen fcapri,

De wielomtrek begrijp ik 1540, bij mij ( 230mm )

wat vul in dan in bij bikespeed

onderin de sketch staat wielomtrek 1000

Je zegt hierboven omtrek 23mm. Als het om een RC voertuigje gaat dan kan dat best. Maar 230mm kan ook best. Het zou ook kunnen dat het model 1:10 is en je 10x grotere getallen in het display wilt hebben. Wat het moet zijn weet ik niet, maar zolang je niet beargumenteert waarom er nu 230 staat is het een beetje fout.

fcapri z'n code is zo goed als de heel sketch. In de loop moet je alleen nog iets zetten om de "bikespeed" variabele op het display te zetten.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Rew

had me vergist in de omtrek geen 23 maar 230mm

mijn truck is 1:14.5

denk jij dat dit de hele sketch is of met ik die ergens in mij gevonden sketch zetten en waar ?