Мазмуну:

CloudX менен санариптик вольтметр: 6 кадам
CloudX менен санариптик вольтметр: 6 кадам

Video: CloudX менен санариптик вольтметр: 6 кадам

Video: CloudX менен санариптик вольтметр: 6 кадам
Video: Я в шоке😄MY FIRST headphones HyperX | RIDANY #shorts 2024, Ноябрь
Anonim
CloudX менен санариптик вольтметр
CloudX менен санариптик вольтметр

Батареялар чынжырларда иштегенде DC (туруктуу ток) энергиясынын таза түрүн камсыз кылат. Алардын төмөн ызы -чуу деңгээли аларды кээде өтө сезгич микросхемаларга эң сонун ылайыкташтырат. Бирок, кээде алардын чыңалуу деңгээли белгилүү бир босогодон ылдый түшүп кеткенде, микросхемалар - (алар бийликке арналган), тартипсиз жүрүм -турумга кириши мүмкүн; айрыкча, алар аны иштетүү үчүн жакшы иштелип чыкпаганда.

Демек, батарейканын кубаттуулугун дайыма көзөмөлдөп туруу зарылдыгы келип чыгат, бул толук алмаштыруу же заряддалуучу батарейканын зарылдыгы жөнүндө бизге туура жол көрсөтүү үчүн. Ошондуктан, бул DIYде (муну өзүңүз жасаңыз), биз CloudSти колдонуп, 7Segmentди дисплейибиз катары колдонуп, батарейканын чыңалуусун эсептегичти түзүшүбүз керек.

1 -кадам: Аппараттык талап

CloudX микроконтроллер модулу

CloudX USB

SoftCard

7 сегментти көрсөтүү

Резисторлор

Электр менен камсыздоо бирдиги

Breadboard

Өткөрүүчү (туташтыруучу) зымдар

2 -кадам: CloudX M633 микроконтроллери

CloudX M633 микроконтроллери
CloudX M633 микроконтроллери

CloudX микроконтроллер модулу

CloudX модулу - бул электроникалык дизайн аппараттык куралы, ал физикалык дүйнө менен жөнөкөй микроконтроллер тактасы аркылуу баарлашуунун бир топ ыңгайлуу жана оңой жолун берет. Бүт платформа ачык булактуу физикалык эсептөөгө негизделген. IDEдин (Интеграцияланган Өнүгүү чөйрөсү) жөнөкөйлүгү аны жаңыдан баштагандарга эң сонун ылайыкташтырат, бирок өнүккөн акыркы колдонуучуларга өтүүгө мүмкүнчүлүк берүү үчүн жетиштүү функцияны сактайт. Жаңгактын кабыгында CloudX микроконтроллерди иштетүүнүн бир топ жөнөкөйлөштүрүлгөн процессин камсыз кылат-аны менен байланышкан кадимки татаал деталдарды жок кылуу менен; ошол эле учурда абдан бай колдонуучу тажрыйбасы платформасын сунуштайт. Бул кеңири колдонмолорду табат: мектептер, улуу Окутуу куралы катары; өнөр жай жана соода продуктылары; жана хоббисттин колунда эң сонун пайдалуу курал катары.

3 -кадам: Pin Connections

Pin Connections
Pin Connections

7 сегменттүү казыктар: A, B, C, D, E, F, G, 1, 2 жана 3 CloudX-MCU pin1, pin2, pin3, pin4, pin5, pin6, pin7, pin8, pin9, pin10 жана pin11 тиешелүү түрдө.

4 -кадам: Райондук диаграмма

Райондук диаграмма
Райондук диаграмма

Бул жерде борбордук баскычта турган микроконтроллер модулу күйгүзүлүшү мүмкүн:

тактадагы Vin жана Gnd чекиттери аркылуу (б.а. аларды тышкы электр менен жабдуучу бирдигиңиздин +ve жана -ve терминалдарына туташтыруу);

же CloudX USB softcard модулуңуз аркылуу

. Мындан тышкары, жогоруда көрсөтүлгөн схемадан оңой эле көрүнүп тургандай, батарейканын кирүү чыңалуусу MCU (микроконтроллер) модулу менен туташат, ошондуктан чыңалуу бөлүштүргүч тармагынын –чеги MCU пининин A0 туташкан..

жана мындай жол менен тандалат:

тармак аркылуу өтүүчү токтун көлөмүн чектөө;

MCU үчүн (0 - 5) V коопсуз чегинде.

Формуланы колдонуу: VOUT = (R2/(R1+R2)) * VIN; жана оңой эле бааласа болот.

Voutmax = 5V

жана бул долбоор үчүн биз тандайбыз: Vinmax = 50V;

5 = (R2/(R1+R2)) * 50 R1 = 45/5 * R2 Мисалы R2 = 10kΩ алуу; R1 = 45/5 * 10 = 90kΩ

5 -кадам: Иштөө принциби

Кирүүчү өлчөө чыңалуусу чыңалуучу бөлүштүрүүчү түйүндүн VOUT чекити аркылуу окулганда, маалыматтар сегменттин бирдигинде көрсөтүлүүчү акыркы чыныгы мааниге чейин баалоо үчүн MCUда иштелип чыгат. Бул (тутумдун дизайны) автоматтык ондук чекит коюучу, анткени ал (ондук чекит) дисплейдин бирдигиндеги позициясын каалаган убакта, калкып чыгуучу мааниге жараша өзгөрөт. Андан кийин, 7-сегменттин дисплей бирдиги мультиплекс режиминде туташат. Бул MCUдан алынган бир эле маалымат шинасы (8-маалымат түйүндөрү) дисплей бирдигиндеги үч активдүү 7 сегменти азыктандыруучу атайын уюштуруу. Маалыматтын үлгүсүн ар бир компоненттин бөлүгүнө жөнөтүү сканерлөө деп аталган процесс аркылуу ишке ашат. Сканерлөө-бул 7-сегменттердин ар бирине маалыматтарды жөнөтүүнү камтыган ыкма; жана тийиштүү маалыматтары келип түшкөндө аларды ырааттуу түрдө иштетүү (б.а. күйгүзүү). Алардын ар бирине кайрылуу ылдамдыгы, ошол эле учурда алардын (компоненттердин) бир убакта иштетилгенине (чечилишине) ишенип, адамдын көз карашын алдап ийгиликтүү кыла тургандай кылып жасалат. Бул (сканерлөө) жөн гана, көрүнүштүн туруктуулугу деп аталган феноменди колдонот.

6 -кадам: Программалык камсыздоо программасы

#кошуу

#кошуу

#кошуу

#аныктоо сегмент1 pin9

#сегментти аныктоо2 pin10

#аныктоо сегмент3 pin11

сүзүү batt_voltage;

int decimalPoint, batt;

/*ар бир берилген сан үчүн сегменттин үлгүсүн сактаган массивдер*/

char CCathodeDisp = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};

char CAnodeDisp = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};

int disp0, disp1, disp2;

дисплей () {

белгисиз char i;

if (decimalPoint <10) {

disp0 = (int) batt_voltage /100; // MSDди алат (Эң маанилүү сан)

// эң жогорку салмакта болуу

/* кийинки салмактуу санды алат; жана башка */

disp1 = ((int) batt_voltage % 100)/10;

disp2 = ((int) batt_voltage % 10);

}

башка {

disp0 = (int) batt_voltage /1000;

disp1 = ((int) batt_voltage % 1000)/100;

disp2 = ((int) batt_voltage % 100)/10;

}

/*Үлгүлөр көрсөтүү үчүн төгүлөт; жана 0x80 белгиси ондук чекитти кошот

эгер байланышкан шарт чын болсо*/

үчүн (i = 0; i <50; i ++) {

pin9 = pin10 = pin11 = HIGH;

if (decimalPoint <10)

portWrite (1, CCathodeDisp [disp0] | 0x80);

else portWrite (1, CCathodeDisp [disp0]);

segment1 = LOW;

segment2 = HIGH;

segment3 = HIGH;

delayMs (5);

pin9 = pin10 = pin11 = HIGH;

if ((decimalPoint> = 10) && (decimalPoint <100))

portWrite (1, CCathodeDisp [disp1] | 0x80);

else portWrite (1, CCathodeDisp [disp1]);

segment1 = HIGH;

segment2 = LOW;

segment3 = HIGH;

delayMs (5);

pin9 = pin10 = pin11 = HIGH;

эгер (decimalPoint> = 100)

portWrite (1, CCathodeDisp [disp2] | 0x80);

else portWrite (1, CCathodeDisp [disp2]);

segment1 = HIGH;

segment2 = HIGH;

segment3 = LOW;

delayMs (5);

}

}

setup () {// бул жерде орнотуу

analogSetting (); // аналогдук порт башталды

portMode (1, OUTPUT); // 1ден 8ге чейин казыктар чыгуучу казыктар катары конфигурацияланган

/ * сканер казыктары чыгуу казыктары катары конфигурацияланган */

pin9Mode = ЧЫГУУ;

pin10Mode = ЧЫГУУ;

pin11Mode = ЧЫГУУ;

portWrite (1, LOW);

pin9 = pin10 = pin11 = HIGH; // сканерлөө казыктары (активдүү-төмөн)

// башында өчүрүлгөн

loop () {// Программа бул жерде

batt_voltage = analogRead (A0); // ченелген маанини алат

batt_voltage = ((batt_voltage * 5000) / 1024); // 5Vin үчүн конверсиялык фактор

batt_voltage = (batt_voltage * 50)/5000; // 50Vin үчүн конверсиялык фактор

decimalPoint = batt_voltage; // ондук чекит пайда болгон жерлерди белгилейт

// маалыматтар менен иштөө алдындагы баштапкы мааниси

дисплей ();

}

}

Сунушталууда: