telecrounch
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
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.
code Arduino
simple sans boutons, utiliser le reset pour réinitialiser
#include "Button2.h"; / #include "ESPRotary.h"; #include <SPI.h> #include <Adafruit_GFX.h> #include <Adafruit_PCD8544.h> 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 :
Boite
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
telecrounch.txt · Dernière modification : 2021/07/22 14:13 de gaziel