Guten Tag,
seit drei tagen versuche ich alles um den Code irgendwie zusammen zu bekommen.
Es gibt etliche Seiten mit fertigen Codes für den Flow Sensor Y-201 mit LCD Display.
Nun möchte ich aber den OLED Display verwenden.
Leider schaffe ich es nicht diese zwei Codes mit einander zu verbinden.
Könnte mir hier ev. jemand helfen.
Code OLED
`#include <Wire.h>
#include "SSD1306Ascii.h"
#include "SSD1306AsciiWire.h"
#define I2C_ADDRESS 0x3C
SSD1306AsciiWire oled;
void setup() {
Wire.begin();
Wire.setClock(400000L);
oled.begin(&Adafruit128x64, I2C_ADDRESS);
}
void loop()
{
oled.setFont(System5x7); // Auswahl der Schriftart
oled.clear(); //Löschen der aktuellen Displayanzeige
oled.println("Viel"); //Text in der ersten Zeile. "Println" sorgt dabei für einen Zeilensprung.
oled.print("Erfolg!!!"); // Text in der zweiten Zeile. Da es keine dritte Zeile gibt, wird hier kein Zeilenumsprung benötigt.
delay (2000);
}`
Code Flow Sensor
/*YF- S201 water Flow sensor code for Arduino */
const int Output_Pin = 2;
volatile int Pulse_Count;
unsigned int Liter_per_hour;
unsigned long Current_Time, Loop_Time;
void setup()
{
pinMode(Output_Pin, INPUT);
Serial.begin(9600);
attachInterrupt(0, Detect_Rising_Edge, RISING);
Current_Time = millis();
Loop_Time = Current_Time;
}
void loop ()
{
Current_Time = millis();
if(Current_Time >= (Loop_Time + 1000))
{
Loop_Time = Current_Time;
Liter_per_hour = (Pulse_Count * 60 / 7.5);
Pulse_Count = 0;
Serial.print(Liter_per_hour, DEC);
Serial.println(" Liter/hour");
}
}
void Detect_Rising_Edge ()
{
Pulse_Count++;
}
Besten dank!
Hallo @erastephan
warum zeigst du uns nicht deine Versuche beides zu verbinden ?
agmue
October 24, 2023, 9:27am
3
Ungetesteter Versuch:
#include <Wire.h>
#include "SSD1306Ascii.h"
#include "SSD1306AsciiWire.h"
#define I2C_ADDRESS 0x3C
SSD1306AsciiWire oled;
/*YF- S201 water Flow sensor code for Arduino */
const int Output_Pin = 2;
volatile int Pulse_Count;
unsigned int Liter_per_hour;
unsigned long Current_Time, Loop_Time;
void setup() {
Wire.begin();
Wire.setClock(400000L);
oled.begin(&Adafruit128x64, I2C_ADDRESS);
pinMode(Output_Pin, INPUT);
Serial.begin(9600);
attachInterrupt(0, Detect_Rising_Edge, RISING);
Current_Time = millis();
Loop_Time = Current_Time;
}
void loop()
{
Current_Time = millis();
if (Current_Time >= (Loop_Time + 1000))
{
Loop_Time = Current_Time;
Liter_per_hour = (Pulse_Count * 60 / 7.5);
Pulse_Count = 0;
Serial.print(Liter_per_hour, DEC);
Serial.println(" Liter/hour");
oled.setFont(System5x7); // Auswahl der Schriftart
oled.clear(); //Löschen der aktuellen Displayanzeige
oled.print(Liter_per_hour, DEC); //Text in der ersten Zeile. "Println" sorgt dabei für einen Zeilensprung.
oled.print(" Liter/hour"); // Text in der zweiten Zeile. Da es keine dritte Zeile gibt, wird hier kein Zeilenumsprung benötigt.
}
}
void Detect_Rising_Edge ()
{
Pulse_Count++;
}
Hier mein Versuch bei dem es lauter fehler mir aufscheisst..
/*YF- S201 water Flow sensor code for Arduino */
const int Output_Pin = 2;
#include <Wire.h>
#include "SSD1306Ascii.h"
#include "SSD1306AsciiWire.h"
#define I2C_ADDRESS 0x3C
volatile int Pulse_Count;
unsigned int Liter_per_hour;
unsigned long Current_Time, Loop_Time;
void setup()
{
pinMode(Output_Pin, INPUT);
Serial.begin(9600);
attachInterrupt(0, Detect_Rising_Edge, RISING);
Current_Time = millis();
Loop_Time = Current_Time;
Wire.begin();
Wire.setClock(400000L);
oled.begin(&Adafruit128x64, I2C_ADDRESS);
}
void loop ()
{
Current_Time = millis();
if(Current_Time >= (Loop_Time + 1000))
{
Loop_Time = Current_Time;
Liter_per_hour = (Pulse_Count * 60 / 7.5);
Pulse_Count = 0;
Serial.print(Liter_per_hour, DEC);
Serial.println(" Liter/hour");
oled.setFont(System5x7); // Auswahl der Schriftart
oled.clear(); //Löschen der aktuellen Displayanzeige
oled.println("Liter/hour"); //Text in der ersten Zeile. "Println" sorgt dabei für einen Zeilensprung.
oled.print("Liter_per_hour, DEC"); // Text in der zweiten Zeile. Da es keine dritte Zeile gibt, wird hier kein Zeilenumsprung benötigt.
delay (2000);
}
void Detect_Rising_Edge ()
{
Pulse_Count++;
}
agmue:
#include <Wire.h>
#include "SSD1306Ascii.h"
#include "SSD1306AsciiWire.h"
#define I2C_ADDRESS 0x3C
SSD1306AsciiWire oled;
/*YF- S201 water Flow sensor code for Arduino */
const int Output_Pin = 2;
volatile int Pulse_Count;
unsigned int Liter_per_hour;
unsigned long Current_Time, Loop_Time;
void setup() {
Wire.begin();
Wire.setClock(400000L);
oled.begin(&Adafruit128x64, I2C_ADDRESS);
pinMode(Output_Pin, INPUT);
Serial.begin(9600);
attachInterrupt(0, Detect_Rising_Edge, RISING);
Current_Time = millis();
Loop_Time = Current_Time;
}
void loop()
{
Current_Time = millis();
if (Current_Time >= (Loop_Time + 1000))
{
Loop_Time = Current_Time;
Liter_per_hour = (Pulse_Count * 60 / 7.5);
Pulse_Count = 0;
Serial.print(Liter_per_hour, DEC);
Serial.println(" Liter/hour");
oled.setFont(System5x7); // Auswahl der Schriftart
oled.clear(); //Löschen der aktuellen Displayanzeige
oled.print(Liter_per_hour, DEC); //Text in der ersten Zeile. "Println" sorgt dabei für einen Zeilensprung.
oled.print(" Liter/hour"); // Text in der zweiten Zeile. Da es keine dritte Zeile gibt, wird hier kein Zeilenumsprung benötigt.
}
}
void Detect_Rising_Edge ()
{
Pulse_Count++;
}
yeah herzlichen dank!!! Es funktioniert.
Kann jemand tutorials und Lektüren für den Einstieg ins IDE Programmieren empfehlen?
Ist Stand etwas erfahrung mir Rapsberry Pi Projekte.
Wenn du deinen eigenen Sketch noch untersuchen möchtest, dann solltest du auch die Fehlermeldungen posten.
Nur daraus kannst du lernen, wo du Fehler gemacht hast.
system
Closed
April 21, 2024, 11:15am
7
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.