![ARDUINO LED TESTER: 5 trin ARDUINO LED TESTER: 5 trin](https://img.gwsigeps.com/img/img/blank.jpg)
Indholdsfortegnelse:
- forsyninger:
- Trin 1: Schemat
- Trin 2: Kode Arduino
- Trin 3: Realisering
- Trin 4: Kode indlæsning og test og indsæt i boks
- Trin 5:
Et lille LED tester projekt
Jeg kigger på NET for en LED tester og efter at have set en ide, ville jeg bygge denne tester fra nul
forsyninger:
Trin 1: Schemat
For at teste en LED har du brug for en nuværende generator.
LM317LZ databladet giver et kort, Se grundlæggende idé hjemmeside
www.robotroom.com/LED-Tester-Pro-1.html
ingen kode tilgængelig fra dette websted
Princippet er derfor at måle flere spændinger ved LED'ens terminaler
VH anode spænding VL katodespænding og subtraherer dem (VH - VL)
Derefter måles spændingen ved terminalen af modstanden, der krydser strømmen af LED IL og divideret med dens værdi R (VR / R = IL)
Trin 2: Kode Arduino
For Arduino-koden blev den grundlæggende idé defineret. Jeg ønskede et display på OLED-skærmen
biblioteket er til en ssd1306
github.com/adafruit/Adafruit_SSD1306
Til måling af forskellige spændinger se
http: //www.instructables.com/id/Arduino-OLED-Volt …
For forskellige menupunkter se
it-edukacija.eu.hr/multidruino/default.html
For at oprette ikoner se
javl.github.io/image2cpp/
vi består testen på et testkort
kode her:
// ================================================
// Forfatter: PHILOUPAT
// Mars 2019 // version 1: en knap, visningsfunktioner OLED I2C, AREF default // ============================== ===================
// I2C OLED DISPLAY: SCL = A5, SDA = A4
// A0 input reference for beregning RL
// A1 input Vbat
// A2 input VL
// A7 input VH
// ================================================
#omfatte
#omfatte
#omfatte
#omfatte
#omfatte
#omfatte
#define SSD1306_128_64
#define SCREEN_WIDTH 128
// OLED displaybredde, i pixels
#define SCREEN_HEIGHT 64
// OLED skærmens højde, i pixels
// Erklæring for en SSD1306-skærm tilsluttet til I2C (SDA, SCL-stifter)
#define OLED_RESET -1 // Reset pin # (eller -1 hvis du deler Arduino reset pin)
Adafruit_SSD1306 display (SCREEN_WIDTH, SCREEN_HEIGHT, & Wire, OLED_RESET);
#define XPOS 0
#define YPOS 1
#define DELTAY 2
// # hvis (SSD1306_LCDHEIGHT! = 64)
// # error ("Højde forkert, skal du rette Adafruit_SSD1306.h!");
//#Afslut Hvis
const unsigned char PROGMEM batterie = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xfe, 0x00, 0x20, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x03, 0xe0, 0x20, 0x00, 0x00, 0x02, 0x20, 0x24, 0x00, 0x00, 0x82, 0x20, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x82, 0x20, 0x20, 0x00, 0x00, 0x03, 0xe0, 0x20, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char PROGMEM resis = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf8, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xff, 0x80, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x3f, 0xf0, 0x00, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
const unsigned char omsorg PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x0c, 0x30, 0x18, 0x0c, 0x30, 0x0c, 0x30, 0x0c, 0x30, 0x0c, 0x30, 0x0c, 0x18, 0x0c, 0x08, 0x18, 0x0c, 0x30, 0x06, 0x30, 0x1e, 0x3c, 0x1c, 0x3c, 0x00, 0x00, 0x00, 0x00};
const unsigned char PROGMEM led = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0x3f, 0xf8, 0x00, 0x00, 0xff, 0xfc, 0x00, 0x00, 0xf, 0xfe, 0x00, 0x1, 0x0, 0x0x, 0x0,0, 0x03, 0x0,0, 0x0,0, 0x00, 0x03, 0xff, 0xc0, 0x07, 0xff, 0x0,0, 0x0,0, 0x07, 0x0,0, 0x0,0, 0xc0, 0x07, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0x0, 0x07, 0xc0, 0x07, 0x0, 0x0,0, 0x0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf7, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xf8, 0xff, 0x1f, 0xf, 0x1f, 0xf, 0x1f, 0xf, 0x1f, 0xf, 0x1f, 0xf, 0xff, 0xf, 0xff, 0xf, 0xf, 0xf8, 0x1f, 0xf, 0xf, 0xf8, 0xff, 0xff, 0xfe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0, 0x0e, 0x00, 0x01, 0xe0, 0x0e, 0x00, 0x00, 0xe0, 0x0e, 0x00, 0x01, 0xe0, 0x0e, 0x00, 0x01, 0x0, 0x0e, 0x00, 0x00, 0xe0, 0x0e, 0x00, 0x01, 0xe0, 0x0e, 0x00, 0x01, 0xe0, 0x0e, 0x00, 0x01, 0xe0, 0x0e, 0x00, 0x00, 0x0, 0x00, 0x00, 0x00, 0x0, 0x0e, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x00, 0xc0, 0x0c, 0x00 0x00, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00., 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
const unsigned char accueil PROGMEM = {
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xe1, 0xd8, 0xc3, 0xff, 0xff, 0xf, 0x00, 0x00, 0x3f, 0x00, 0xf, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xc1, 0xd9, 0x83, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xf, 0xff, 0xf, 0x00, 0xf, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xf, 0xff, 0xff, 0xc4, 0xe1, 0xb9, 0x83, 0xff, 0xff, 0xf8, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc4, 0xf9, 0xb1, 0xa3, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x83, 0xf3, 0x07, 0xf, 0x0, 0xf, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x83, 0x73, 0x0f, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x3f, 0xf, 0xf, 0xf3, 0xf, 0x03, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xe3, 0xf8, 0x06, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xe3, 0xf1, 0xfc, 0x30, 0xff, 0xff, 0xff, 0xff, 0x fx, 0xf, 0xf, 0xf, 0xf, 0xf, 0x3f, 0xf, 0xe3, 0xf1, 0xfc, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf, 0xbc, 0x7c, 0xff, 0x7c, 0xff, 0x1c, 0x7c, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf, 0xf, 0x04, 0x00, 0x0f, 0x00, 0xc7, 0xe0, 0x3c, 0x7c, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xff, 0xcf, 0xe1, 0xfc, 0x7, 0x7f, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xff, 0x8f, 0xe3, 0xf8, 0x7c, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x8f, 0xc7, 0xf8, 0xf8, 0x7f, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xff, 0x8f, 0xc7, 0xf8, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x88, 0x07, 0x88, 0x07, 0xff, 0x80, 0x00, 0x08, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xf9, 0xff, 0xcf, 0xff, 0x0x, 0x0x, 0x0x, 0x0x, 0x0x, 0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0xx 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1c, 0x01, 0x0f, 0x18, 0x07, 0xff, 0xff, 0xff, 0x1, 0x1, 0x1, 0x1, 0xff, 0xf, 0xf, 0xf, 0xf, 0x03, 0x04, 0x03, 0x00, 0x00, 0x04, 0x01, 0x1f, 0x98, 0x03, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0x88, 0x88, 0xfe, 0x1e, 0x00, 0x40, 0xff, 0x1f, 0x90, 0xe1, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0x38, 0xf8, 0xfe, 0x3f, 0xb8, 0xf8 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0x1, 0xf, 0xf, 0xf, 0xf8, 0xf, 0xf, 0xf, 0xf8, 0xf, 0x3f, 0x91, 0xc3, 0xff, 0xf, 0x1f, 0xf9, 0xff 0xf, 0xf, 0xf0, 0xf, 0x07, 0xf8, 0xf8, 0x0e, 0x3f, 0x93, 0x87, 0xff, 0xff, 0x1f, 0xf9, 0xf, 0xf, 0xf1, 0xf0, 0x1f, 0xc1, 0xf8, 0xf0, 0x0e, 0x3f, 0xa, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf1, 0xf0, 0xf, 0xf8, 0x70, 0xf0, 0xfe, 0x3f, 0x20, 0x1f, 0xff, 0xff, 0x9f, 0xf9, 0xff, 0xff, 0xf1 0xf, 0xf, 0xf1, 0xf1, 0xf1, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf9, 0xf, 0xf, 0xe1, 0xe3, 0xfd, 0xfc, 0x71, 0xf1, 0xfe, 0x3f, 0x23, 0x8f, 0xff, 0xf, 0xf, 0xf, 0xf1, 0xe3, 0xf, 0xe3, 0xfe, 0x1e, 0x63, 0x87, 0xff, 0xff, 0x9f, 0xf9, 0xff, 0xff, 0xe1, 0xe3, 0xc4, 0x00, 0x61, 0xe1, 0x6, 0xe, 0x63, 0xc7, 0xff, 0xf, 0x9f, 0xf9, 0xff, 0xff, 0xe1, 0xe0, 0x04, 0x00, 0xe1, 0xe0, 0x07, 0x00, 0xe3, 0xc3, 0xff, 0xff, 0x9f, 0xf9, 0xff, 0xff, 0xe1, 0xe0, 0x07, 0x03, 0xe1, 0xe0, 0x07, 0x01, 0xc3, 0xc3, 0xff, 0xff, 0x 0xff, 0xff, 0xff, 0xff, 0xff, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
int mode = 0;
int pause = 500;
int RL = 0;
int R1 = 10000;
int R2 = 10000;
int R3 = 47;
float raw = 0;
float val = 0;
float ref = 0;
float vbat = 0;
float vin = 0,00;
float voutL = 0.00;
flyde voutH = 0,00;
flyde vref = 0,00;
flydefløjte = 0,00;
flyde vr = 0,00;
flyde IL = 0,00;
float vinref = 0,00;
float vinbat = 0;
void setup ()
{
pinMode (5, INPUT_PULLUP);
pinMode (4, INPUT_PULLUP);
pinMode (3, INPUT_PULLUP);
attachInterrupt (1, bouton, FALLING);
// som standard genererer vi højspændingen fra 3.3V linjen internt! (pæne!) display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // initialiseres med I2C addr 0x3C (for 128x32)
}
void loop ()
{
float vref = readVcc () / 1000.0;
val = analogRead (A7);
raw = analogRead (A2);
voutH = (val * vref) / 1024,0; // se tekst
voutL = (rå * vref) / 1024,0;
hvis (voutL> 0)
{
hvis (mode == 0) // caracteristique led
{
float vref = (readVcc () / 1000,0);
val = analogRead (A7);
raw = analogRead (A2);
ref = analogRead (A0);
voutH = (val * vref) / 1024,0; // se tekst
voutL = (rå * vref) / 1024,0;
vled = (voutH-voutL) * (R1 + R2) / R2;
vr = voutL;
IL = vr / R3;
display.clearDisplay ();
display.setTextColor (WHITE);
display.drawBitmap (96, 0, led, 32, 64, 1);
display.setFont ();
display.setFont (& FreeSans9pt7b);
display.setCursor (0,12);
display.print ("LED-funktion");
display.setCursor (0,35);
display.print ("VL");
display.setCursor (28,35);
display.print (vled);
display.setCursor (72,35);
display.print ("V");
display.setCursor (0,60);
display.print ("IL");
display.setCursor (28,60);
display.print (IL * 1000);
display.setCursor (75,60);
display.print ("mA");
display.display ();
forsinkelse (pause);
}
hvis (mode == 1)
{// modstand
float vref = (readVcc () / 1000,0);
val = analogRead (A7);
raw = analogRead (A2);
ref = analogRead (A0);
voutH = (val * vref) / 1024,0;
voutL = (rå * vref) / 1024,0;
vinref = (ref * vref * 2) / 1024,0;
vled = (voutH-voutL) * (R1 + R2) / R2;
IL = voutL / R3;
RL = (vinrefleks) / IL;
display.clearDisplay ();
display.drawBitmap (96, 0, resis, 32, 64, 1);
display.setFont ();
display.setFont (& FreeSans9pt7b);
display.setCursor (0,12);
display.print ("Resistance:");
display.setCursor (0,35);
display.print ("Vin");
display.setCursor (32,35);
display.print (vinref);
display.setCursor (75,35);
display.print ("V");
display.setCursor (0,60);
display.print ("RL:");
hvis (RL <0)
{
display.setCursor (30,60);
display.print ("tomme");
}
andet
{
display.setCursor (30,60);
display.print (RL);
display.drawBitmap (73, 46, oms, 15, 15, 1);
}
display.display ();
forsinkelse (pause);
}
hvis (mode == 2)
{// baterie
float vref = (readVcc () / 1000,0);
vbat = analogRead (A1);
vinbat = (vbat * vref * 2.3) / 1024.0;
isplay.clearDisplay ();
display.drawBitmap (90, -2, batterie, 36, 21, 1);
display.setFont ();
display.setFont (& FreeSans9pt7b);
display.setCursor (0,14);
display.print ("Batterie:");
//display.fillRect(10,35,90,20,WHITE);
//display.fillRect(12,37,88,18,BLACK);
display.drawRoundRect (15, 40, 95, 24, 8, WHITE);
display.setCursor (0,35);
display.print ("Vbat:");
display.setCursor (50,35);
display.print (vinbat);
display.setCursor (90,35);
display.print ("V");
hvis (vinbat> 0 && vinbat <7,0)
{// en bar
display.fillRect (20,45,10,15, SORT);
}
Ellers hvis (vinbat> 7.0 && vinbat <7,8)
{// to bar
display.fillRect (20,45,10,15, SORT);
display.fillRect (30,45,5,15, HVIDT);
display.fillRect (35,45,10,15, SORT);
}
Ellers hvis (vinbat> 7,8 && vinbat <8,4)
{// tre bar
display.fillRect (20,45,10,15, SORT);
display.fillRect (30,45,5,15, HVIDT);
display.fillRect (35,45,10,15, SORT);
display.fillRect (45,45,5,15, HVIDT);
display.fillRect (50,45,10,15, SORT);
}
Ellers hvis (vinbat> 8.4 && vinbat <8,7)
{// fire bar
display.fillRect (20,45,10,15, SORT);
display.fillRect (30,45,5,15, HVIDT);
display.fillRect (35,45,10,15, SORT);
display.fillRect (45,45,5,15, HVIDT);
display.fillRect (50,45,10,15, SORT);
display.fillRect (60,45,5,15, HVIDT);
display.fillRect (65,45,10,15, SORT);
}
ellers hvis (vinbat> 8.7 && vinbat <9.0)
{// fem bar
display.fillRect (20,45,10,15, SORT);
display.fillRect (30,45,5,15, HVIDT);
display.fillRect (35,45,10,15, SORT);
display.fillRect (45,45,5,15, HVIDT);
display.fillRect (50,45,10,15, SORT);
display.fillRect (60,45,5,15, HVIDT);
display.fillRect (65,45,10,15, SORT);
display.fillRect (75,45,5,15, HVIDT);
display.fillRect (80,45,10,15, SORT);
}
ellers hvis (vinbat> 9.0 && vinbat <9,4)
{
display.fillRect (20,45,10,15, SORT);
display.fillRect (30,45,5,15, HVIDT);
display.fillRect (35,45,10,15, SORT);
display.fillRect (45,45,5,15, HVIDT);
display.fillRect (50,45,10,15, SORT);
display.fillRect (60,45,5,15, HVIDT);
display.fillRect (65,45,10,15, SORT);
display.fillRect (75,45,5,15, HVIDT);
display.fillRect (80,45,10,15, SORT);
display.fillRect (90,45,5,15, HVIDT);
display.fillRect (95,45,10,15, SORT);
}
display.display (); forsinkelse (pause); }
}andet
{
display.clearDisplay ();
display.drawBitmap (0, 0, accueil, 128, 64, 1);
display.display ();
forsinkelse (700);
display.display ();
forsinkelse (1000);
}
}
void bouton ()
{
statisk usigneret lang last_interrupt_time = 0;
usigneret lang interrupt_time = millis ();
// Hvis afbrydelser kommer hurtigere end 200 ms, antages det, at det er en hoppe og ignorere
hvis (interrupt_time - last_interrupt_time> 220) {
tilstand ++;
tone (6,2250,50);
if (mode> 2)
mode = 0;
}
last_interrupt_time = interrupt_time;
}
lang readVcc ()
defineret (__ AVR_ATmega2560__) ADMUX = _BV (REFS0)
Trin 3: Realisering
Schemat og PCB. Jeg bruger EAGLES til at realisere shem og pcb
et godt websted til fremstilling
jlcpcb.com/
Liste over materialet:
-1 Arduino mini pro 5v
http: //www.banggood.com/Wholesale-New-Ver-Pro-Min …
-1 0,96 inch OLED-modul 12864 128x64 Gul Blå SSD1306 Driver I2C Seriel Selvlysende Skærme til Arduino Raspberry PI eller andre
advarsel til polaritet Gnd Vcc eller Vcc Gnd
http: //www.amazon.com/UCTRONICS-SSD1306-Self-Lumi …
http: //www.ebay.fr/itm/0-96-I2C-IIC-SPI-Serial-12 …
-1 LM317 LZ
http: //www.ebay.fr/itm/5Pcs-LM317LZ-LM317L-LM317 -…
http: //www.amazon.com/LM317LZ-Voltage-Regulator-I …
-1 MCP1702 5V
http: //www.ebay.fr/itm/Microchip-MCP1702-500-TO-9 …
http: //www.amazon.com/5002E-MCP1702-1702-5002E-MC …
-2x10k 2x470k 2x 47r 1 / 8w
-1x500R variabel TSR3386F 3/8
http: //www.ebay.fr/itm/Suntan-TSR3386F-3-8-1-turn …
-1x10K varig TSR3386F 3/8
http: //www.ebay.fr/itm/Suntan-TSR3386F-3-8-1-turn …
-1xsitch on / off SS12D00G4 SPDT 1P2T 2 Position 3 Pin PCB
http: //www.ebay.fr/itm/20pcs-SS12D00G4-SPDT-1P2T -…
-2x 1μF tantale
-3x100nF
-1x1N4148
Mulig Strøm på 9V batterie eller batterie lipo 3.7V
-1x3,7V 9V 5V 2A justerbar trin op 18650 litiumbatteri opladning afladning integreret modul
http: //www.banggood.com/3pcs-3_7V-9V-5V-2A-Adjust …
-1xLIPO batteri 3,7V 400mAh
http: //www.ebay.fr/itm/Batterie-403035-Lipo-3-7v -…
Trin 4: Kode indlæsning og test og indsæt i boks
For at indlæse koden skal du bruge FTDI
og test med forskellige lysdioder og dioder
lav boksen 3d print
kom til tingvers:
www.thingiverse.com/thing:3594143
samlet og nyd
dette projekt bruger flere software er derfor en god uddannelsesmæssig chalenge pcb kode 3d elektronisk regnemaskine mv