Motortoerental op LCD

Hallo iedereen,

ik zit een beetje vast.
Ik zou met een potmeter het toerental van mijn brushless motor willen regelen, dit lukt me allemaal maar hierbij zou ik ook graag het toerental willen uitlezen op de serial monitor.

Nu dit moet ongeveer gebeuren, dus gewoon rekenkundig. Nu heb ik dit al via verschillende wegen geprobeerd, maar ik dacht de functie map te kunnen gebruiken. Maar nu komt het probleem.
Het toerental zou dus van 0 tot 40000rpm moeten kunnen varieren, maar op 32000rpm slaagt de waarde in het negatieve.

Iemand een idee hoe ik dit alsnog kan oplossen?

Hierbij de code die ik reeds heb:

#include <Servo.h> 
 
Servo myservo;  // create servo object to control a servo 
 
int potpin = 0;  // analog pin used to connect the potentiometer
int val;    // variable to read the value from the analog pin 
 
void setup() 
{ 
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object 
  Serial.begin(9600);
} 
 
void loop() 
{ 
  val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023) 
  val = map(val, 0, 1023, 0, 40000);     // scale it to use it with the servo (value between 0 and 180) 
  myservo.write(val);                  // sets the servo position according to the scaled value 
  Serial.println(val);
  delay(15);                           // waits for the servo to get there 

}

de maximale waarde van int is iets van een 32000
je kan een unsigned int gebruiken
of een long
jantje

je maakt twee fouten:
als eerste moet val niet dubbel gebruikt worden, dus de input val loopt van 0 1023
en de uitkomst van de map wordt dan uitval en dat moet een unsigned int worden want er komt nooit een min voor te staan.
en het hoogste bit word hier dan wel voor gebruikt.

Ja ik heb het klaar gekregen!

Bedankt allemaal!

Deze code werkt natuurlijk enkel als die motor in vrijloop draait en ervan uitgaande dat hij lineair reageert op het pwmsignaal. Ik vermoed dat er nog een transistor/mosfet/motordriverIC tussen zit? Dan zal het zeker nier meer helemaal lineair zijn. Als het enkel groffe aanduiding moet zijn zal het wel volstaan. Als het rpm belangrijk en nauwkeurig moet zijn daarentegen...

Het klopt wat je zegt avismagnus.

Maar wat de sketch echt doet nu het probleem is opgelost, weten we niet.
Want jorimon heeft wel verteld dat het is opgelost, maar is vergeten te vertellen hoe het is opgelost.