bitdschungel:
Hi,
Hier erstmal noch der überarbeitete Code (mit Kommentaren)
[code]
/**************************************************************************
-Drehzahlmessgerät-
Programm: mit diesem Programm soll ein Drehzahlmessgerät mit
einem Namursensor realisiert werden. Als Anzeige
Einheit wird ein I²C-OLED-Dislpay verwendet
Autor: Leon Braun
Erstellt: 21.12.2020
letzte Änderung: 21.12.2020
Hinweis: -
**************************************************************************/
#include <SPI.h> //einbinden der Bibliotheken
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4 //display initialisierung???
Adafruit_SSD1306 display(OLED_RESET);
#define namur 2 //sensor Pin
int IMPULSE; //Variable in die die Impulse des Sensors in einer sec geschrieben Werden
int DREHZAHL; //Variable in der die errechnete Drehzahl aus der IMPULSE Variable gespeichert wird
unsigned long STARTTIME; //Referenzzeit wann mit der Messung begonnen und aufgehört werden Soll
unsigned long STOPTIME;
void measure(); //initialisierung der Funktion fürs messen
void calculate(); //initialisierung der Funktion fürs errechnen der Drehzahl
void show(); //initialisierung der Funktion fürs anzeigen auf dem Display
void setup() {
pinMode(namur,INPUT); //Sensorpin = Ausgang
Serial.begin(57600); //display “einstellungen?!?”
display.begin(SSD1306_SWITCHCAPVCC, 0x7A);
display.clearDisplay();
IMPULSE=0; //Startert der Variablen festlegen
DREHZAHL=0;
}
void loop() {
show(); //Anzeigefunkion wird aufgerufen
if(namur==HIGH){ //sobald das erste HIGH Signal vom Sensor kommt soll gemessen werden
measure(); //Messfunktion wird aufgerufen
}
if(IMPULSE=!0){ //sobald der Messwert nichtmehr 0 ist soll gerechnet werden
calculate(); //Rechenfunktion wird aufgerufen
}
display.clearDisplay(); //Display wird einmal gecleart
}
void measure(){ //deklarierung der Messfunktion
STARTTIME=millis(); //Zeitpunkt des Starts der Messung wird gespeichert
STOPTIME=STARTTIME+1000; //Zeitpunkt wann Messung enden soll wird errechnet(1sek später
while(millis<=STOPTIME){ //solange kleiner als der Stopzeitpunkt ist sollen Impulse gemessen werden
if(namur==HIGH){ //Wenn der Namur Sensor HIGH ist
IMPULSE++; //soll IMPULSE 1 Hochgezählt werden
}
}
}
void calculate(){ //deklarierung der Rechenfunktion
DREHZAHL=IMPULSE20; //Errechung der Drehzahl in U/min aus 31/sek
IMPULSE=0; //Messwert wird zurückgesetzt
}
void show(){ //deklarierung der Anzeigefunktion
display.setTextSize(1); //Textgröße einstellen
display.setTextColor(WHITE); //Textfarbe einstellen
display.setCursor(0,0); //Startzeile/-Spalte einstllen
display.println(“Drehzahl:”); //Schreibe"TEXT" im Display
display.print(DREHZAHL); //Schreibe errechnete Drehzahl ins Display
}
[/code]
ich hatte vorhin schon meine Schaltung fotografiert und wollte alles Hochladen habe auch extra den Filesize so runtergeschraubt dass ich unter 2Mb war (weit drunter) aber es kommt die ganze zeit ne Fehlermeldung.
ich probiers heut Nachmittag nochmal von daheim aus.
MFG bitdschungel
Das Bild einfach mit MS-Paint in der Größe “eindampfen” 