/* Simulationsmodell für das blaue ESP32 Demo-Board
* Ansteuerung eines Modellbau-Servos
* Anschluß des Servos an Pin 5, rechter 8-polige Buchse.
* Die Standard-Servos benötigen 5V Versorgungsspannung, die blauen
* Mikro-Servos laufen auch mit 3,3V.
*/
//#include <Servo.h>
//***** Portpins für Ein-/Ausgänge ***************************************
const int Enc_A = 34, Enc_B = 35, Enc_Taster = 0, NEO_Pin=26;
const int LED_rot = 32, LED_gruen = 33, Taster2 = 2, Taster4 = 4;
const int PWM_Pin = 5;
//***** Objekte aus Bibliotheken anlegen
//Servo myServo;
// ***** Globale Variablen und Definitionen *******************************
#define PWM_Bits 10 // mind. 1000 Werte => 0-1023
#define PWM_Kanal 0 // Kanal 0 bis 15 möglich
#define PWM_Freq 50 // der Servo will 20ms => 50Hz ausgeben
uint16_t Digitalwert;
bool T2_neu, T2_alt, T4_neu, T4_alt; // für Flankenerkennung
unsigned long nextMillis;
// ***** Initialisierung **************************************************
void setup() {
Serial.begin(115200); // Serielle Schnittstelle mit 115200Bit/s
pinMode(LED_rot, OUTPUT); // die LEDs beginnen danach
pinMode(LED_gruen, OUTPUT); // zu leuchten!
digitalWrite(LED_rot, HIGH); // also beide ausschalten
digitalWrite(LED_gruen, HIGH);
pinMode(Taster2, INPUT_PULLUP); // Taster brauchen hier den
pinMode(Taster4, INPUT_PULLUP); // Pullup-Widerstand
// LEDC-PWM initialisieren
ledcSetup ( PWM_Kanal, PWM_Freq, PWM_Bits );
ledcAttachPin ( PWM_Pin, PWM_Kanal );
ledcWrite ( PWM_Kanal, 76);
}
// ***** Endlosschleife ***************************************************
void loop() {
static bool Richtung=true;
unsigned long currentMillis = millis( );
if ( currentMillis >= nextMillis ) {
nextMillis = currentMillis + 100; // 1x pro Sekunde Messen
ledcWrite(PWM_Kanal, Digitalwert);
if (Richtung == true) Digitalwert ++;
else Digitalwert --;
if (Digitalwert < 51) {
Serial.println("Richtung links");
Richtung = true;
}
if (Digitalwert > 102) {
Serial.println("Richtung rechts");
Richtung = false;
}
}
}
// ***** Eigene Funktionen ************************************************
Taster2
Taster4
LED32
LED33
ESP32 Schulboard mit LEDs und Tastern, I2C-Bus mit Standard-Belegung
SSD1306 Display
WS2812 an Pin26