===== TELECROUNCH ===== == badge télécran == création pendant les OAVL2021 d'un télécran numérique (Etch A Sketch) === BOM === * ESP3266 (ESP-F) * écran Nokia 5150 * 2 Encodeurs Rotatifs (KY-40) * ... avoir pour la suite === Schéma de câblage === {{ ::telecran.png?direct&600 |}} essai avec Inkscape : j'ai gouré dans la taille de la grille d'acroche et le schema n'est pas dans le bon sens pour une plaque veroboard. {{ :telecrounch.png?direct |}} === code Arduino === simple sans boutons, utiliser le reset pour réinitialiser #include "Button2.h"; / #include "ESPRotary.h"; #include #include #include Adafruit_PCD8544 display = Adafruit_PCD8544(D4, D3, D2, D1, D0); #define ROTARY_PIN1 D7 #define ROTARY_PIN2 D8 //#define BUTTON_PIN D3 #define ROTARY_PIN4 D5 #define ROTARY_PIN5 D6 //#define BUTTON_PIN D7 #define CLICKS_PER_STEP 4 // this number depends on your rotary encoder #define MIN_POS_H 0 #define MAX_POS_H 83 #define START_POS_H 40 #define INCREMENT 1 // this number is the counter increment on each step #define MIN_POS_V 0 #define MAX_POS_V 47 #define START_POS_V 24 ESPRotary r; ESPRotary v; //Button2 b; void setup() { //Serial.begin(9600); //delay(50); display.begin(); display.setCursor(40,24); display.setContrast(60); display.clearDisplay(); //b.begin(BUTTON_PIN); // b.setTapHandler(click); r.begin(ROTARY_PIN1, ROTARY_PIN2, CLICKS_PER_STEP, MIN_POS_H, MAX_POS_H, START_POS_H, INCREMENT); v.begin(ROTARY_PIN4, ROTARY_PIN5, CLICKS_PER_STEP, MIN_POS_V, MAX_POS_V, START_POS_V, INCREMENT); // Serial.println("hello"); // Serial.println("You can only set values between " + String(MIN_POS_H) + " and " + String(MAX_POS_H) +"."); // Serial.println(r.getIncrement()); // Serial.println(r.getPosition()); } void loop() { r.loop(); v.loop(); //b.loop(); //Serial.print(r.getPosition()); //Serial.print(" - "); //Serial.println(v.getPosition()); display.drawPixel(r.getPosition(),v.getPosition(),1); display.display(); } // single click void click(Button2& b) { //Serial.println("Click!"); } libraires utilisées : * [[https://learn.adafruit.com/adafruit-gfx-graphics-library|adafruit GFX ]] * [[https://github.com/LennartHennigs/ESPRotary|Rotary Encoder]] === Boite === {{::telecrounchboite.png?nolink|}} sur openscad : //dimensions du PCB L=83; l=64; h=19; //épaisseur ep=2; rayon de courbure de la boite r=4; difference(){ hull(){ translate([0,0,0])cylinder(h+ep,r=4,$fn=50); translate([L-r+ep,0,0])cylinder(h+ep,r=4,$fn=50); translate([0,l-r+ep,0])cylinder(h+ep,r=4,$fn=50); translate([L-r+ep,l-r+ep,0])cylinder(h+ep,r=4,$fn=50); } translate([(-r+ep)/2,(-r+ep)/2,ep]) cube([L,l,h*2]); } === galerie === {{:img_20210720_111422.jpg?direct&400|}}{{:img_20210722_140330.jpg?direct&400|}}{{:img_20210722_141211.jpg?direct&600|}}