Outils pour utilisateurs

Outils du site


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 16:13 de gaziel