ARDUINO LED TESTER: 5 trin

ARDUINO LED TESTER: 5 trin

Indholdsfortegnelse:

Anonim

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

Trin 5: