ARDUINO LED TESTER: 5 Langkah

ARDUINO LED TESTER: 5 Langkah

Isi kandungan:

Anonim

Projek penguji LED kecil

Saya sedang melihat pada NET untuk penguji LED dan selepas melihat beberapa idea saya mahu membina penguji ini dari sifar

Bekalan:

Langkah 1: The Schemat

Untuk menguji LED anda memerlukan penjana semasa.

Datasheet LM317LZ menyediakan peta, Lihat laman web dasar idea

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

tiada kod yang tersedia dari laman web ini

Oleh itu prinsip itu adalah untuk mengukur beberapa voltan di terminal LED

VH anoda tegangan voltan katod VL dan tolak mereka (VH - VL)

kemudian untuk mengukur voltan di terminal rintangan yang dilalui oleh arus LED IL dan dibahagikan dengan nilai R (VR / R = IL)

Langkah 2: Kod Arduino

Untuk kod Arduino idea asas ditakrifkan saya mahukan paparan pada skrin OLED

perpustakaan adalah untuk ssd1306

github.com/adafruit/Adafruit_SSD1306

Untuk mengukur voltan yang berbeza lihat

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

Untuk pilihan menu yang berbeza lihat

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

Untuk membuat ikon lihat

javl.github.io/image2cpp/

kami lulus ujian itu di papan ujian

kod di sini:

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

// Pengarang: PHILOUPAT

// Mars 2019 // versi 1: satu butang, mod paparan OLED I2C, lalai AREF // ============================= ===================

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

// Rujukan input A0 untuk pengiraan RL

// input A1 Vbat

// Input A2 VL

// Input A7 VH

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

#include

#include

#include

#include

#include

#include

#define SSD1306_128_64

#define SCREEN_WIDTH 128

// Lebar paparan OLED, dalam piksel

#define SCREEN_HEIGHT 64

// Ketinggian paparan OLED, dalam piksel

// Pengisytiharan paparan SSD1306 yang disambungkan ke I2C (pin SDA, SCL)

#define OLED_RESET -1 // Reset pin # (atau -1 jika berkongsi pin reset Arduino)

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

#define XPOS 0

#define YPOS 1

#define DELTAY 2

// # if (SSD1306_LCDHEIGHT! = 64)

// # error ("Ketinggian tidak betul, sila ubah Adafruit_SSD1306.h!");

// # endif

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, 0x20, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x03, 0x0, 0x20, 0x00, 0x00, 0x02, 0x20, 0x24, 0x00, 0x00, 0x82, 0x20, 0x24, 0x00, 0x01, 0x00, 0x20, 0x24, 0x00, 0x00, 0x82, 0x20, 0x20, 0x00, 0x00, 0x82, 0x20, 0x20, 0x00, 0x00, 0x03, 0xe0, 0x20, 0x00, 0x00, 0x03, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x02, 0x00, 0x3f, 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, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x5f, 0x80, 0x00, 0x3f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x00, 0x78, 0x80, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 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, 0x78, 0x00, 0x00, 0x0f, 0xf8, 0x00, 0x03, 0xff, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,, 0x18, 0x00, 0x00, 0x00, 0x18, 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, 0x ff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 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 no unsigned char oms PROGMEM = {

0x00, 0x0c, 0x30, 0x18, 0x18, 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 char unsigned PROGMEM yang dipimpin = {

0x00, 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, 0xff, 0xfe, 0x00, 0x01, 0x03, 0xff, 0x00, 0x03, 0xff, 0xff, 0x00, 0x03, 0xff, 0xff, 0x80, 0x03, 0xff, 0xff, 0x80, 0x07, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xc0, 0x07, 0x07, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xc0, 0x07, 0x07, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0x00, 0x00, 0x07, 0xff, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf7, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xf8, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0fff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0e, 0x00, 0x01, 0xe0, 0x0e, 0x00, 0x00, 0xe0, 0x0e, 0x00, 0x01, 0xe0, 0x0e, 0x00, 0x01, 0xe0, 0x0e, 0x00, 0x00, 0xe0, 0x0e, 0x00, 0x01, 0xe0, 0x0e, 0x00, 0x01, 0xe0, 0x0e, 0x00, 0x01, 0xe0, 0x0e 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x04, 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};

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, 0xf8, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 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, 0xfe, 0x00, 0x00, 0x7f, 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, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xc1, 0xd9, 0x83, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf, 0x3, 0xff, 0xf9, 0x83, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc4, 0xe1, 0xb9, 0x83, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x3f, 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, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x83, 0x73, 0x0f, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x3f, 0xf, 0xf3, 0xf8, 0x02, 0x03, 0xff, 0xff, 0xff, 0x7f, 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 ff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x3f, 0xff, 0xe3, 0xf1, 0xfc, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf3, 0xbc, 0x7c, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xe0, 0x1c, 0x7c, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x04, 0xc7, 0x0f, 0x3c, 0xcc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xff, 0xcf, 0xe1, 0xfc, 0x7c, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xff, 0x8f, 0xe3, 0xf8, 0x7c, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x0f, 0xc7, 0xf8, 0xf8, 0x7f, 0xf8, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x07, 0xff, 0x8f, 0xc7, 0xf8, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x07, 0xff, 0x88, 0x07, 0x88, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x07, 0x07, 0x80, 0x00, 0x08, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xf9, 0xff, 0xcf, 0xff, 0x80, 0x00, 0x08, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 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, 0x1f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0xe0, 0x1c, 0x01, 0xc0, 0xe0, 0x1c, 0x01, 0x0f, 0x18, 0x07, 0xff, 0xff, 0x1f, 0xf0, 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, 0xfe, 0x1f, 0x91, 0xe1, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0xf9, 0xf8, 0xfe, 0x3f, 0xf8, 0xf8, 0xfe, 0x3f, 0x91, 0xc3, 0xff, 0xff, 0x1f, 0xf9, 0xff, 0xf0, 0xf1, 0xf0, 0xff, 0x0e, 0xf8, 0xf8, 0x0e, 0x3f, 0x93, 0x87, 0xff, 0xff, 0x1f, 0xf9, 0xff, 0xff, 0xf1, 0xf0, 0x1f, 0xc1, 0xf8, 0xf0, 0x0e, 0x3f, 0xa0, 0x0f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0xff, 0xf1, 0xf0, 0xff, 0xf8, 0x70, 0xf0, 0xfe, 0x3f, 0x20, 0x1f, 0xff, 0xff, 0x9f, 0xf9, 0xff, 0xff, 0xf1, 0xf1, 0xf, 0xfc, 0x71, 0xf1, 0xfe, 0x3f, 0x20, 0x0f, 0xff, 0xff, 0x9f, 0xf9, 0xff, 0xfc, 0xe1, 0xe3, 0xfd, 0xfc, 0x71, 0xf1, 0xfe, 0x3f, 0x23, 0x8f, 0xff, 0xff, 0xbf, 0xf9, 0xff, 0xf, 0xe1, 0xe3, 0xfc, 0xf8, 0x61, 0xe3, 0xfe, 0x1e, 0x9f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0xff, 0xe1, 0xe3, 0xc4, 0x00, 0x61, 0xe1, 0xc6, 0x00, 0x63, 0xc7, 0xff, 0xff, 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, 0xf9, 0xf, 0xf, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 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 mod = 0;

int pause = 500;

int RL = 0;

int R1 = 10000;

int R2 = 10000;

int R3 = 47;

float mentah = 0;

float val = 0;

float ref = 0;

float vbat = 0;

float vin = 0.00;

float voutL = 0.00;

float voutH = 0.00;

float vref = 0.00;

float vled = 0.00;

float vr = 0.00;

float IL = 0.00;

floref vinref = 0.00;

float vinbat = 0;

batal persediaan ()

{

pinMode (5, INPUT_PULLUP);

pinMode (4, INPUT_PULLUP);

pinMode (3, INPUT_PULLUP);

attachInterrupt (1, bouton, FALLING);

// secara lalai, kami akan menghasilkan voltan tinggi dari garis 3.3v secara dalaman! (kemas!) display.begin (SSD1306_SWITCHCAPVCC, 0x3C); / / inisikan dengan I2C addr 0x3C (untuk 128x32)

}

kekosongan gelung ()

{

float vref = readVcc () / 1000.0;

val = analogRead (A7);

mentah = analogRead (A2);

voutH = (val * vref) / 1024.0; // lihat teks

voutL = (raw * vref) /1024.0;

jika (voutL> 0)

{

jika (mode == 0) // caracteristique diketuai

{

float vref = (readVcc () / 1000.0);

val = analogRead (A7);

mentah = analogRead (A2);

ref = analogRead (A0);

voutH = (val * vref) / 1024.0; // lihat teks

voutL = (raw * vref) /1024.0;

vled = (voutH-voutL) * (R1 + R2) / R2;

vr = voutL;

IL = vr / R3;

display.clearDisplay ();

display.setTextColor (WHITE);

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

display.setFont ();

display.setFont (& FreeSans9pt7b);

display.setCursor (0,12);

display.print ("ciri LED");

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

paparan.display ();

kelewatan (jeda);

}

jika (mod == 1)

{// resistance

float vref = (readVcc () / 1000.0);

val = analogRead (A7);

mentah = analogRead (A2);

ref = analogRead (A0);

voutH = (val * vref) /1024.0;

voutL = (raw * vref) /1024.0;

vinref = (ref * vref * 2) /1024.0;

vled = (voutH-voutL) * (R1 + R2) / R2;

IL = voutL / R3;

RL = (vinref-vled) / 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);

paparan.print (vinref);

display.setCursor (75,35);

display.print ("V");

display.setCursor (0,60);

display.print ("RL:");

jika (RL <0)

{

display.setCursor (30,60);

display.print ("kosong");

}

lain

{

display.setCursor (30,60);

paparan.print (RL);

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

}

paparan.display ();

kelewatan (jeda);

}

jika (mod == 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);

paparan.print (vinbat);

display.setCursor (90,35);

display.print ("V");

jika (vinbat> 0 && vinbat <7.0)

{// satu bar

display.fillRect (20,45,10,15, BLACK);

}

lain jika (vinbat> 7.0 && vinbat <7.8)

{// dua bar

display.fillRect (20,45,10,15, BLACK);

display.fillRect (30,45,5,15, WHITE);

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

}

lain jika (vinbat> 7.8 && vinbat <8.4)

{// tiga bar

display.fillRect (20,45,10,15, BLACK);

display.fillRect (30,45,5,15, WHITE);

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

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

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

}

lain jika (vinbat> 8.4 && vinbat <8.7)

{// empat bar

display.fillRect (20,45,10,15, BLACK);

display.fillRect (30,45,5,15, WHITE);

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

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

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

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

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

}

lain jika (vinbat> 8.7 && vinbat <9.0)

{// lima bar

display.fillRect (20,45,10,15, BLACK);

display.fillRect (30,45,5,15, WHITE);

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

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

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

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

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

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

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

}

lain jika (vinbat> 9.0 && vinbat <9.4)

{

display.fillRect (20,45,10,15, BLACK);

display.fillRect (30,45,5,15, WHITE);

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

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

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

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

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

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

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

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

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

}

paparan.display (); kelewatan (jeda); }

} lain

{

display.clearDisplay ();

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

paparan.display ();

kelewatan (700);

paparan.display ();

kelewatan (1000);

}

}

tidak sah bouton ()

{

static unsigned long last_interrupt_time = 0;

unsigned long interrupt_time = millis ();

// Jika gangguan akan datang lebih cepat dari 200ms, anggap ia melantun dan abaikan

jika (interrupt_time - last_interrupt_time> 220) {

mod ++;

nada (6,2250,50);

jika (mod> 2)

mod = 0;

}

last_interrupt_time = interrupt_time;

}

panjang readVcc ()

ditakrifkan (__ AVR_ATmega2560__) ADMUX = _BV (REFS0)

Langkah 3: Kesedaran

Schemat dan PCB. Saya menggunakan EAGLES untuk merealisasikan shem dan pcb

tapak yang baik untuk pembuatan

jlcpcb.com/

Senarai bahan:

-1 Arduino mini pro 5v

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

-1 0.96 Inch OLED Module 12864 128x64 Yellow Blue SSD1306 Pemandu I2C Serial Papan Paparan Sendiri Sendiri untuk Arduino Raspberry PI atau lain-lain

amaran kepada kutub Gnd Vcc atau 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 variable TSR3386F 3/8

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

-1x10K berbeza TSR3386F 3/8

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

-1xsitch hidup / mati SS12D00G4 SPDT 1P2T 2 Kedudukan 3 Pin PCB

http: //www.ebay.fr/itm/20pcs-SS12D00G4-SPDT-1P2T- …

-2x 1μF tantale

-3x100nF

-1x1N4148

Kuasa Kemungkinan pada bateri 9V atau batterie lipo 3.7V

-1x3.7V 9V 5V 2A Langkah Boleh Laraskan 18650 Bateri Litium Mengecas Modul Bersepadu Bersih

http: //www.banggood.com/3pcs-3_7V-9V-5V-2A-Adjust …

-1xLIPO batterie 3.7V 400mAh

http: //www.ebay.fr/itm/Batterie-403035-Lipo-3-7v-…

Langkah 4: Memuatkan Kod dan Ujian dan Masukkan Kotak

Untuk memuatkan kod menggunakan FTDI

dan uji dengan LED dan dioda yang berbeza

buat kotak 3d cetakan

pergi ke perkara yang sama:

www.thingiverse.com/thing:3594143

berkumpul dan nikmati

projek ini menggunakan beberapa perisian oleh sebab itu adalah kalkulator Pendidikan yang baik kod pcb 3d kalkulator elektronik dan lain-lain

Langkah 5: