wäre schön, danke.Da es im Prinzip keinen wirklichen Beitrag zum Aufbau/Inbetriebnahme gibt (ist ja auch ziemlich überschaubar), kann ich gerne zu meinem Projekt einen kleinen Beitrag erstellen und dann dort veröffentlichen.
Gruß Dieter
Moderator: Co-Administratoren
wäre schön, danke.Da es im Prinzip keinen wirklichen Beitrag zum Aufbau/Inbetriebnahme gibt (ist ja auch ziemlich überschaubar), kann ich gerne zu meinem Projekt einen kleinen Beitrag erstellen und dann dort veröffentlichen.
Das ist abhängig vom Display. Ich habe das damals nur für jemanden blind implementiert, weil er nicht wusste, wo im Code was hin muss und vergessen, den Branch zu löschen.Aber leider ist der Wert kaum lesbar. Wäre es möglich, den Wert im "blauen Bereich" des Displays größer anzeigen zu lassen?
Das ist zum manuellen Triggern einer Übertragung, um zum Testen nicht jedes Mal warten zu müssen, bis der Timer wieder zuschlägt.#define ISR_PIN 9
Ja, das war garantiert aus Faulheit von woanders übernommen.byte SENSOR_EN_PINS[] {5}; //VCC Pin des Sensors
Ja, in der Webui, siehe Readme ganz unten (Sensortyp):Muss/kann man irgendwo einstellen, welchen der beiden Sensoren man verwendet?
Das ist eigentlich schon lange drin... Versuchs mal mit Browser Cache löschen oder "Inkognito-Tab".
Was passiert denn, wenn du einfach ausGelegenheitsbastler hat geschrieben: ↑15.01.2019, 21:46Das mit dem Display ist schade. Dann lasse ich das erst einmal.
Code: Alles auswählen
display.setTextSize(1);
Code: Alles auswählen
display.setTextSize(2);
Code: Alles auswählen
.
.
.
void measure() {
digitalWrite(SENSOR_EN_PINS[(number() - 1)], HIGH);
_delay_ms(500);
uint16_t sens_val = 0;
for (uint8_t i = 0; i < 10; i++) {
sens_val += analogRead(SENSOR_PINS[(number() - 1)]);
_delay_ms(5);
}
sens_val = sens_val / 10;
digitalWrite(SENSOR_EN_PINS[(number() - 1)], LOW);
float sensor_factor = 0.75;
switch (this->getList1().PressureSensorType()) {
case MPA_1_2:
sensor_factor = 0.75;
break;
case MPA_0_5:
sensor_factor = 1.6;
break;
default:
break;
}
float _p = (((sens_val / 1024.0) - (ANALOG_SOCKET_VALUE / 1000.0)) / sensor_factor) * 1000;
pressure = _p > 0 ? _p : 0;
DPRINT(F("+Pressure (#")); DDEC(number()); DPRINT(F(") Analogwert: ")); DDECLN(sens_val);
DPRINT(F("+Pressure (#")); DDEC(number()); DPRINT(F(") mBar: ")); DDECLN(pressure * 10);
lcd.setCursor(0,0);
lcd.print("Druck: ");
lcd.setCursor(8,0);
lcd.print(sens_val);
}
.
.
.
Hi,Gelegenheitsbastler hat geschrieben: ↑16.01.2019, 12:09Was muss in die letzte Klammer, in der aktuell "sens_val" steht, um den Druck im mBar anzeigen zu lassen?
Code: Alles auswählen
lcd.setCursor(0,0);
lcd.print("Druck: ");
lcd.setCursor(8,0);
lcd.print(pressure * 10);
In demselben Intervall, in dem auch gesendet wird (einstellbar über WebUI).Gelegenheitsbastler hat geschrieben: ↑16.01.2019, 20:41Danke für die Info. Das klappt nun soweit alles.
Nun noch eine dumme Frage: In welchem Intervall wird der Druck ermittelt - und damit Änderungen auf dem Display sichtbar?
Wenn der CC1101 nicht initialisiert werden kann, wird der ganze trigger-Konstrukt nicht (so richtig) funktionieren.Gelegenheitsbastler hat geschrieben: ↑16.01.2019, 20:41Die Geschichte mit dem ISR_Pin funktioniert bei mir nicht. Egal, ob ich den auf GND oder 3V3 lege, der Wert ändert sich nicht.
(CC1101 ist noch nicht installiert und der Drucksensor wird durch eine angelegte Spannung von 800mV - 900mV vom LaborNT simuliert)