'rpm_as' was not declared in this scope
That is my problem.
For a school project i need to make a kart that brakes all by itself, using a LIDAR distance meter and the speed of the kart.
I have a switch with a LED that indicates which stand is on, because i want to be able to change the stand because of wheater circumstances. The LED, and the switch, worked perfectly but when i changed a few things it gave an error : 'rpm_as' was not declared in this scope. I don't know what i did wrong can anybody help me?
My code:
#include <LiquidCrystal.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address
#define MEASURE_TIME 1000 // measure every second
#define WIEL_OMTREK 3000 // wiel omtrek in millimeter
unsigned long triggerTijd; // testen voor elke MEASURE_TIME
unsigned long snelheid = 0;
unsigned long maxsnelheid = 0;
volatile unsigned int puls = 0; //volatile wordt altijd gebruikt in combi met een interupt, het vertelt de compiler
// om gegevens direct uit RAM te halen en niet uit een tijdelijk register
unsigned long rpm = 0L;
unsigned long wielomtrek = 0L; // long is een variabele waar grote getallen in kunnen ook negatieve getallen.
unsigned long afstand = 0L;
unsigned long maxafstand = 0L;
/**
-
@name setup()
*/
int LED = 4;
void setup() {
//
// we have no LCD so do serial
pinMode(5, OUTPUT);
pinMode(10, INPUT_PULLUP);
pinMode(11, INPUT_PULLUP);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
Serial.begin(115200); // Opent een seriële verbindingspoort.
lcd.begin(20, 4); // Stelt de LCD in 16 kolommen en 2 rijen.
attachInterrupt(0, rpm_as, FALLING); // vallende puls als trigger
triggerTijd = millis() + MEASURE_TIME;// start de timer
int distance = 11; // geen eenheid erachter want is input en geen constante
pinMode(LED,OUTPUT);
}
void loop() {
int sensorVal10 = digitalRead(10);
int sensorVal11 = digitalRead(11);
} ////////////////////////////////////////////////////////////////////////Stand van het programma
lcd.clear(0, 0);
lcd.setCursor(14, 3);
lcd.print("Stnd");
//////////////////////////////////////////////////////////////////schakeling van standen
if (sensorVal10 == HIGH) {
digitalWrite(7, LOW);
lcd.setCursor(19, 3);
lcd.print("1");
}
if (sensorVal10 == LOW) {
digitalWrite(7, HIGH);
}
if (sensorVal11 == HIGH) {
digitalWrite(8, LOW);
lcd.setCursor(19, 3);
lcd.print("2");
}
if (sensorVal10 == HIGH) {
digitalWrite(8, HIGH);
}
if (sensorVal11 == LOW);
(sensorVal10 == LOW);
{
digitalWrite(8, LOW);
digitalWrite(7, LOW);
}
///////////////////////////////////////////////////////////////////////////////snelheid en LCD
int distance = 11;
if (millis() > triggerTijd) {
// bereken het aaltal RPM per minuut
//
rpm = puls * 60;
snelheid = ((WIEL_OMTREK * rpm * 60) / (1000000)); // Reken de snelheid uit.
afstand = (WIEL_OMTREK * puls); // Reken de afgelegde afstand uit.
maxafstand= (afstand + maxafstand);
//Hieronder wordt de hoogste waarde van de variabele "maxsnelheid" onthouden.
if (snelheid > maxsnelheid)
maxsnelheid = snelheid;
if (snelheid < maxsnelheid)
maxsnelheid = maxsnelheid;
lcd.setCursor(0, 0);
lcd.print("Speed");
lcd.setCursor(14, 0); // Zet de cursor op de gewenste plaats, kolom4(5) en rij1(0).
lcd.print("Km/h"); // Schrijf de tekst tussen de "".
lcd.setCursor(10, 0);
lcd.print(snelheid); // Schrijf de variabele "snelheid".
lcd.setCursor(0, 1);
lcd.print("Fastest Km/h");
lcd.setCursor(10, 1);
lcd.print(maxsnelheid);
lcd.setCursor(0, 2);
lcd.print("Distance");
lcd.setCursor(10, 2);
lcd.print(distance);
lcd.setCursor(14, 2);
lcd.print("m");
lcd.setCursor(0,3);
lcd.print("Danger");
lcd.setCursor(10,4);
if (distance < snelheid) /////////////////// hier neerzeten if (distance < remweg + remweg/10)
{
lcd.print("YES");
digitalWrite(LED,HIGH);
}
if (distance > snelheid) /////////////////// hier neerzeten if (distance < remweg + remweg/10)
{
lcd.print("NO");
digitalWrite(LED,LOW);
digitalWrite(5, HIGH);
}
else {
digitalWrite(5, LOW);
}
puls = 0;
triggerTijd = millis() + MEASURE_TIME; // start de timer
}
}
/**
- @name rpm_as
- wordt aangeroepen bij elke trigger van de hall sensor
*/
void rpm_as() {
puls++; // verhoog de teller
}