ARDUINO LED TESTER: 5 trinn

ARDUINO LED TESTER: 5 trinn

Innholdsfortegnelse:

Anonim

Et lite LED tester prosjekt

Jeg så på NET for en LED-tester og etter å ha sett noen ideer, ønsket jeg å bygge denne testeren fra null

forsyninger:

Trinn 1: Schemat

For å teste en LED trenger du en nåværende generator.

LM317LZ-databladet gir et kart, se grunnsidens nettsted

www.robotroom.com/LED-Tester-Pro-1.html

Ingen kode tilgjengelig fra dette nettstedet

prinsippet er derfor å måle flere spenninger ved terminaler på LED

VH anode spenning VL katodespenning og trekke dem (VH - VL)

da for å måle spenningen ved terminalen av motstanden som krysses av strømmen av LED IL og delt med verdien R (VR / R = IL)

Trinn 2: Kode Arduino

For Arduino-koden ble grunnleggende ideen definert. Jeg ønsket et display på OLED-skjermen

biblioteket er for en ssd1306

github.com/adafruit/Adafruit_SSD1306

For måling av forskjellige spenninger, se

http: //www.instructables.com/id/Arduino-OLED-Volt …

For forskjellige menyvalg se

it-edukacija.eu.hr/multidruino/default.html

For å lage ikoner, se

javl.github.io/image2cpp/

vi bestiller testen på et testkort

kode her:

// ================================================

// Forfatter: PHILOUPAT

// Mars 2019 // versjon 1: en knapp, visningsmodus OLED I2C, AREF standard // ============================== ===================

// I2C OLED DISPLAY: SCL = A5, SDA = A4

// A0 Inngangsreferanse for beregning RL

// A1 inngang Vbat

// A2-input VL

// A7 inngang VH

// ================================================

#inkludere

#inkludere

#inkludere

#inkludere

#inkludere

#inkludere

#define SSD1306_128_64

#define SCREEN_WIDTH 128

// OLED skjermbredde, i piksler

#define SCREEN_HEIGHT 64

// OLED skjermhøyde, i piksler

// Deklarasjon for en SSD1306-skjerm koblet til I2C (SDA, SCL-pinner)

#define OLED_RESET -1 // Reset pin # (eller -1 hvis du deler Arduino reset pin)

Adafruit_SSD1306 skjerm (SCREEN_WIDTH, SCREEN_HEIGHT, & Wire, OLED_RESET);

#define XPOS 0

#define YPOS 1

#define DELTAY 2

// # hvis (SSD1306_LCDHEIGHT! = 64)

// # feil ("Høyde feil, vennligst reparer Adafruit_SSD1306.h!");

//#slutt om

const usigned char PROGMEM batterie = {

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf, 0xf, 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, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x82, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0, 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, 0x00, 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, 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};

const unsigned char omsorg PROGMEM = {

0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x30, 0x0c, 0x18, 0x0c, 0x0c, 0x30, 0x0c, 0x30, 0x0c, 0x30, 0x0c, 0x30, 0x0c, 0x30, 0x0c, 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, 0xf, 0xfc, 0x00, 0x00, 0xff, 0x0, 0x0, 0x0x, 0x0x, 0x0x, 0x0x, 0x0x, 0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x030x0x0x030x070x03 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x07, 0x0, 0x0, 0xc0, 0x07, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0, 0x0, 0x0, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x0,0, 0x0,0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf7, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xf8, 0xf, 0x1f, 0xf, 0x1f, 0xf, 0x1f, 0xf, 0x1f, 0xff, 0xff, 0xf, 0xff, 0xf, 0xff, 0xf, 0xf, 0xf, 0x1f, 0xf, 0xf, 0xff, 0xf, 0xff, 0xf, 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, 0x0e, 0x00, 0x00, 0x0, 0x0e, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x0c, 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, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 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, 0xx, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 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, 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, 0xf, 0xf, 0xf, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xc1, 0xd9, 0x83, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf, 0xf, 0xf, 0xf, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xf, 0xff, 0xff, 0xc4, 0xe1, 0xb9, 0x83, 0xff, 0xff, 0xf8, 0x00, 0x00, 0xf, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc4, 0xf3, 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, 0xf, 0xf, 0xf, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xf, 0xe3, 0xf8, 0x06, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf, 0xf, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xe3, 0xf1, 0xfc, 0x30, 0xff, 0xff, 0xff, 0xff, 0x 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xe0, 0x1c, 0x7c, 0x7f, 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, 0xf, 0xf, 0xf, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0xff, 0x8, 0xe3, 0xf8, 0x7c, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x0, 0x00, 0x8, 0x7, 0xf, 0xf8, 0x7f, 0xf, 0xff, 0xff, 0xff, 0xff, 0xf, 0xe0, 0x00, 0x00, 0x07, 0xff, 0x8f, 0xc7, 0xf8, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0xff, 0xff, 0xf, 0x0x, 0xff, 0x07, 0xff, 0x80, 0x00, 0x08, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xf9, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 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, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1, 0xf, 0x0, 0x1c, 0x0, 0xc0, 0xe0, 0x1c, 0x01, 0x0f, 0x18, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf, 0xf, 0xf, 0xf, 0x03, 0x04, 0x03, 0x00, 0x00, 0x04, 0x01, 0x1f, 0x98, 0x03, 0xff, 0xf, 0x1f, 0xf0, 0xff, 0xff, 0x88, 0x88, 0xfe, 0x1e, 0x00, 0x40, 0xff, 0x1, 0x90, 0xe1, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0x38, 0xf8, 0xfe, 0x3f, 0xb8, 0xf8, 0xf, 0x1, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf9, 0xf8, 0xfe, 0x3f, 0xf8, 0xf8, 0xfe, 0x3f, 0x91, 0xc3, 0xff, 0xff, 0x1f, 0xf9, 0xff 0xf, 0xf, 0xf0, 0xff, 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, 0xf1, 0xff, 0xf1, 0xf, 0xf1, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf9, 0xf, 0xf, 0xe1, 0xe3, 0xfd, 0xfc, 0x71, 0xf1, 0xfe, 0x3f, 0x23, 0x8f, 0xf, 0xf, 0xf, 0xf3, 0xf1, 0xf8, 0xf, 0x1, 0xf, 0x1e, 0x63, 0x87, 0xff, 0xff, 0x9f, 0xf9, 0xff, 0xff, 0xe1, 0xe3, 0xc4, 0x00, 0x61, 0xe1, 0x6, 0x00, 0x63, 0xc7, 0xff, 0xf, 0x9f, 0xf9, 0xff, 0xff, 0xe1, 0xe0, 0x04, 0x00, 0xe1, 0xe0, 0x07, 0x00, 0xe3, 0xc3, 0xff, 0xff, 0x9f, 0xf0, 0xff, 0xf, 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, 0xff, 0xff};

int modus = 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;

flytevin = 0,00;

float voutL = 0.00;

flyte voutH = 0.00;

flyte vref = 0.00;

float vled = 0.00;

float vr = 0.00;

flyte IL = 0,00;

flyte vinref = 0,00;

float vinbat = 0;

ugyldig oppsett ()

{

pinMode (5, INPUT_PULLUP);

pinMode (4, INPUT_PULLUP);

pinMode (3, INPUT_PULLUP);

attachInterrupt (1, bouton, FALLING);

// som standard, genererer vi høyspenningen fra 3.3v linjen internt! (pent!) display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // initialiser med I2C addr 0x3C (for 128x32)

}

tomromsløyfe ()

{

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 (modus == 0) // caracteristique ledet

{

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 (hvit);

display.drawBitmap (96, 0, ledet, 32, 64, 1);

display.setFont ();

display.setFont (& FreeSans9pt7b);

display.setCursor (0,12);

display.print ("LED-funksjon");

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);

}

if (modus == 1)

{// motstand

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");

if (RL <0)

{

display.setCursor (30,60);

display.print ("tom");

}

ellers

{

display.setCursor (30,60);

display.print (RL);

display.drawBitmap (73, 46, oms, 15, 15, 1);

}

display.display ();

forsinkelse (pause);

}

if (modus == 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 linje

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, hvit);

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, hvit);

display.fillRect (35,45,10,15, SORT);

display.fillRect (45,45,5,15, hvit);

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, hvit);

display.fillRect (35,45,10,15, SORT);

display.fillRect (45,45,5,15, hvit);

display.fillRect (50,45,10,15, SORT);

display.fillRect (60,45,5,15, hvit);

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, hvit);

display.fillRect (35,45,10,15, SORT);

display.fillRect (45,45,5,15, hvit);

display.fillRect (50,45,10,15, SORT);

display.fillRect (60,45,5,15, hvit);

display.fillRect (65,45,10,15, SORT);

display.fillRect (75,45,5,15, hvit);

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, hvit);

display.fillRect (35,45,10,15, SORT);

display.fillRect (45,45,5,15, hvit);

display.fillRect (50,45,10,15, SORT);

display.fillRect (60,45,5,15, hvit);

display.fillRect (65,45,10,15, SORT);

display.fillRect (75,45,5,15, hvit);

display.fillRect (80,45,10,15, SORT);

display.fillRect (90,45,5,15, hvit);

display.fillRect (95,45,10,15, SORT);

}

display.display (); forsinkelse (pause); }

}ellers

{

display.clearDisplay ();

display.drawBitmap (0, 0, accueil, 128, 64, 1);

display.display ();

forsinkelse (700);

display.display ();

forsinkelse (1000);

}

}

void bouton ()

{

statisk usignert lang last_interrupt_time = 0;

usignert lang interrupt_time = millis ();

// Hvis avbrudd kommer raskere enn 200 ms, anta at det er en sprette og ignorere

hvis (interrupt_time - last_interrupt_time> 220) {

modus ++;

tone (6,2250,50);

if (modus> 2)

mode = 0;

}

last_interrupt_time = interrupt_time;

}

lang readVcc ()

definert (__ AVR_ATmega2560__) ADMUX = _BV (REFS0)

Trinn 3: Realisering

Skjema og PCB. Jeg bruker EAGLES for å realisere shem og PCB

et godt nettsted for produksjon

jlcpcb.com/

Liste over materialet:

-1 Arduino mini pro 5v

http: //www.banggood.com/Wholesale-New-Ver-Pro-Min …

-1 0,96 tommers OLED-modul 12864 128x64 Gul Blå SSD1306 Driver I2C Seriell Selvlysende Skjermkort for Arduino Raspberry PI eller annen

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 varabel TSR3386F 3/8

http: //www.ebay.fr/itm/Suntan-TSR3386F-3-8-1-turn …

-1xsitch på / av SS12D00G4 SPDT 1P2T 2 Posisjon 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 Justerbart trinn opp 18650 litiumbatteri Ladestrøm integrert 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 -…

Trinn 4: Kode lasting og test og legg i boks

For å laste koden, bruk FTDI

og test med forskjellige lysdioder og dioder

gjør boksen 3d-utskrift

komme til tingvers:

www.thingiverse.com/thing:3594143

samlet og nyt

dette prosjektet bruker flere programvare er derfor en god pedagogisk chalenge pcb kode 3d elektronisk kalkulator mv

Trinn 5: