moinsen,
projekt darf man das hier eigentlich nicht nennen - eher versuch/test - und mit dem RPi hat es auch nichts zu tun, da er mir für dieses projekt schlichtweg zu teuer und überdimensioniert ist. deswegen habe ich einen esp32 genommen ... wenn ich hier falsch bin, dann schiebt mich raus ...
situation:
hardware (datenblätter im anhang) :
* esp32 wroom32
* weltbestes steckbrett
* mosfet520 driver modul
* purewings 2 von bequiet - BQ-PUW2-14025-LS-10
* netzteil 12V dc
verkabelung:
netzteil (-, +) ==> mosfet (gnd, vin)
mosfet (v+, v-) ==> Lüfter (+, -)
mosfet (sig, gnd) ==> esp32 (23, gnd)
sketch :
const byte PWM_PIN = 23; // Datenverarbeitung
const int PWM_KANAL = 0; // Kommunikationskanal
const int PWM_FREQUENZ = 25000; // Hz
const byte PWM_AUFLOESUNG = 8; // Bit (=> 0 bis 255)
int pinHighTime = 128; // PIN-Einschaltdauer (DutyCircle) in
int pinHighTime_2 = 255; // Prozent im Verhältnis zur Dauer
int pinHighTime_3 = 80; // des eingeschalteten PWM-Signals
/*--------------------------------------------------------------------------------------- +
| > > > S E T U P < < < |
+ ---------------------------------------------------------------------------------------*/
void setup() { // Die Setup-Funktion wird einmal
// ausgeführt, wenn auf dem Board die
// Reset-Taste gedrückt oder das Board
// eingeschaltet wird.
ledcSetup(PWM_KANAL, PWM_FREQUENZ, PWM_AUFLOESUNG); // LED-PWM-Eigenschaften konfigurieren
ledcAttachPin(PWM_PIN, PWM_KANAL); // GPIO initialisieren
}
/*--------------------------------------------------------------------------------------- +
| > > > L O O P < < < |
+ ---------------------------------------------------------------------------------------*/
void loop() { // die Loop-Funktion läuft
// fortwährend durch, solange der
// ESP32 eingeschaltet ist
ledcWrite(PWM_KANAL, pinHighTime); // LED-Helligkeit ändern mittels PWM
delay(5000);
ledcWrite(PWM_KANAL, pinHighTime_2);
delay(5000);
ledcWrite(PWM_KANAL, pinHighTime_3);
delay(5000);
/*
// Helligkeit erhöhen
for(pinHighTime = 0; pinHighTime <= 255; pinHighTime++) {
ledcWrite(PWM_KANAL, pinHighTime); // LED-Helligkeit ändern mittels PWM
delay(15);
}
// Helligkeit absenken
for(pinHighTime = 255; pinHighTime >= 0; pinHighTime--) {
ledcWrite(PWM_KANAL, pinHighTime);
delay(15);
}
*/
}
Alles anzeigen
ich habe den sketch mit einer LED ausprobiert (auskommentierter code), und funktioniert bestens ...
ihr könnt es euch denken: lüfter läuft nicht ...
was ich bereits unternommen habe:
- ich habe 'beobachtet', dass die led am mosfet rot leuchtet, wenn ich sig auf pin 23 stecke (=> ok - mmn)
- ich habe gemessen (im laufenden betrieb) :
mosfet gnd, vin => 12.08V (pinOnTime, pinOnTime_1,pinOnTime_2) => von netzteil -, + (=> ok - mmn)
mosfet v+, v- => 0.725V, 0.747V, 0.775V (pinOnTime, pinOnTime_1,pinOnTime_2) => zum lüfter +, - (=> zu wenig - mmn)
mosfet sig, gnd => 0.998V, 1.578V, 3.158V => zu esp32 23,gnd (=> zu wenig - mmn)
- sig-kabel an 3.3v (esp32) => led am mosfet leuchtet rot (ok - mmn), ventilator kein mucks
- sig-kabel an 5v (esp23) =>led am mosfet leuchtet rot (ok - mmn), ventilator läuft auf max(?)
todo:
fenster auf und raus damit ...
beobachtung:
- die LED am mosfet leuchtet in drei stufen
- der ventilator macht keinen mucks
meine schlussfolgerung:
- mosfet schaltet nicht
- sketch scheint ja zu funktionieren, wenn die led 3-stufig leuchtet
wer hat einen rat für mich ?
besten dank vorab !
bleibt gesund !
so long
pc