Სარჩევი:

ციფრული ვოლტმეტრი CloudX– ით: 6 ნაბიჯი
ციფრული ვოლტმეტრი CloudX– ით: 6 ნაბიჯი

ვიდეო: ციფრული ვოლტმეტრი CloudX– ით: 6 ნაბიჯი

ვიდეო: ციფრული ვოლტმეტრი CloudX– ით: 6 ნაბიჯი
ვიდეო: მულტიმეტრის გამოყენება! როგორ გავზომოთ ამპერი! 2024, ნოემბერი
Anonim
ციფრული ვოლტმეტრი CloudX– ით
ციფრული ვოლტმეტრი CloudX– ით

ბატარეები უზრუნველყოფენ DC– ს (პირდაპირი დენის) სიმძლავრის უფრო სუფთა ფორმას, როდესაც გამოიყენება სქემებში. მათი დაბალი ხმაურის დონე ყოველთვის ხდის მათ იდეალურ მორგებას ძალიან მგრძნობიარე სქემებისთვის. თუმცა, იმ მომენტებში, როდესაც მათი ძაბვის დონე ეცემა ქვემოთ გარკვეულ ზღურბლს, სქემები - (რომელთა დანიშნულებაა ძალა), შეიძლება არასწორ ქცევაში ჩავარდეს; განსაკუთრებით მაშინ, როდესაც ისინი არ არიან კარგად შემუშავებული ამის გასაკეთებლად.

აქედან გამომდინარე, ჩნდება საჭიროება ბატარეის სიმძლავრის დონის რეგულარული მონიტორინგი, რათა სწორად ვიხელმძღვანელოთ, როდის არის საჭირო მისი სრული ჩანაცვლება, ან დატენვა a დატენვის შემთხვევაში. ამიტომ, ამ წვრილმანში (გააკეთე შენი თავი), ჩვენ უნდა შევქმნათ მარტივი ბატარეის ძაბვის მრიცხველი CloudX– ის გამოყენებით - 7Segment– ის ჩვენებად.

ნაბიჯი 1: აპარატურის მოთხოვნა

CloudX მიკროკონტროლერის მოდული

CloudX USB

რბილი ბარათი

7 სეგმენტის ჩვენება

რეზისტორები

კვების ბლოკი

პურის დაფა

Jumper (დამაკავშირებელი) მავთულები

ნაბიჯი 2: CloudX M633 მიკროკონტროლერი

CloudX M633 მიკროკონტროლი
CloudX M633 მიკროკონტროლი

CloudX მიკროკონტროლერის მოდული

CloudX მოდული არის ელექტრონიკის დიზაინის აპარატურის ინსტრუმენტი, რომელიც საშუალებას გაძლევთ ფიზიკურ სამყაროსთან ურთიერთობის ბევრად მოსახერხებელი და მარტივი გზა მარტივი მიკროკონტროლის დაფის საშუალებით. მთელი პლატფორმა ემყარება ღია კოდის ფიზიკურ გამოთვლებს. მისი სიმარტივე IDE (ინტეგრირებული განვითარების გარემო) ნამდვილად აქცევს მას სრულყოფილად დამწყებთათვის, მაგრამ ინარჩუნებს საკმარის ფუნქციონირებას, რაც საშუალებას მისცემს მოწინავე საბოლოო მომხმარებლებს ნავიგაცია გაიარონ. თხილის ნაჭუჭში, CloudX ითვალისწინებს მიკროკონტროლერის მართვის ბევრად გამარტივებულ პროცესს with მასთან დაკავშირებული ნორმალური კომპლექსური დეტალების ამოღებით; ამავე დროს გთავაზობთ ძალიან მდიდარ მომხმარებლის გამოცდილების პლატფორმას. ის აღმოაჩენს ფართო პროგრამებს: სკოლები, როგორც დიდი საგანმანათლებლო ინსტრუმენტი; სამრეწველო და კომერციული პროდუქტები; და როგორც დიდი სასარგებლო ინსტრუმენტი ჰობისტის ხელშია.

ნაბიჯი 3: მიამაგრეთ კავშირები

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 ტერმინალებამდე შესაბამისად) დაფაზე;

ან თქვენი CloudX USB რბილი ბარათის მოდულის საშუალებით

რა უფრო მეტიც, როგორც ეს ადვილად ჩანს სქემის დიაგრამადან ზემოთ, შეყვანის ბატარეის ძაბვა დაკავშირებულია MCU (მიკროკონტროლერის) მოდულთან ისე, რომ ძაბვის გამყოფი ქსელის წერტილი (ჩამოყალიბებულია და) დაკავშირებულია MCU პინის A0- თან რა

და არჩეულია ისე, რომ:

შეზღუდოს დენის რაოდენობა, რომელიც გადის ქსელში;

ლიმიტი უსაფრთხო დიაპაზონში (0 - 5) V MCU– სთვის.

ფორმულის გამოყენებით: 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-სეგმენტის ჩვენების ერთეული მავთულხლართულია მულტიპლექს რეჟიმში. ეს არის სპეციალური შეთანხმება, რომლის მიხედვითაც ერთი და იგივე მონაცემთა ავტობუსი (8 მონაცემთა ქინძისთავები) MCU– დან კვებავს ჩვენების სამ აქტიურ 7 სეგმენტს. მონაცემთა შაბლონის გაგზავნა თითოეულ კომპონენტურ ნაწილში მიიღწევა პროცესით, რომელსაც ეწოდება სკანირება. სკანირება არის ტექნიკა, რომელიც მოიცავს მონაცემების გაგზავნას თითოეული კომპონენტის 7 სეგმენტზე; და სწრაფად (ზედიზედ ჩართვა) მათი თანმიმდევრობით მათი შესაბამისი მონაცემების მიღებისთანავე. თითოეული მათგანის მიმართვის მაჩვენებელი ხდება ისე, რომ მას შეუძლია მოატყუოს ადამიანის ხედვა და დაიჯეროს, რომ ყველა მათგანი (შემადგენელი ნაწილები) ჩართულია (მიმართულია) ერთდროულად. ის (სკანირება) უბრალოდ, ფაქტობრივად, იყენებს ფენომენს, რომელიც ცნობილია როგორც Persistence Of Vision.

ნაბიჯი 6: პროგრამული უზრუნველყოფის პროგრამა

#ჩართეთ

#ჩართეთ

#ჩართეთ

#განსაზღვრეთ სეგმენტი 1 pin9

#განსაზღვრეთ სეგმენტი 2 პინ 10

#განსაზღვრეთ სეგმენტი 3 pin11

float batt_voltage;

int ათობითი წერტილი, ბატ;

/*მასივები, რომლებიც ინახავს სეგმენტის ნიმუშს თითოეული მოცემული ციფრისთვის*/

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;

თუ (ათობითი წერტილი <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 სიმბოლო ათწილადის დამატებით

თუ დაკავშირებული მდგომარეობა მართალია*/

for (i = 0; i <50; i ++) {

pin9 = pin10 = pin11 = HIGH;

თუ (ათობითი წერტილი <10)

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

else portWrite (1, CCathodeDisp [disp0]);

სეგმენტი 1 = დაბალი;

სეგმენტი 2 = მაღალი;

სეგმენტი 3 = მაღალი;

დაგვიანებით (5);

pin9 = pin10 = pin11 = HIGH;

თუ ((ათობითი წერტილი> = 10) && (ათობითი წერტილი <100))

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

else portWrite (1, CCathodeDisp [disp1]);

სეგმენტი 1 = მაღალი;

სეგმენტი 2 = დაბალი;

სეგმენტი 3 = მაღალი;

დაგვიანებით (5);

pin9 = pin10 = pin11 = HIGH;

თუ (ათობითი წერტილი> = 100)

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

else portWrite (1, CCathodeDisp [disp2]);

სეგმენტი 1 = მაღალი;

სეგმენტი 2 = მაღალი;

სეგმენტი 3 = დაბალი;

დაგვიანებით (5);

}

}

setup () {// კონფიგურაცია აქ

analogSetting (); // ანალოგური პორტი ინიციალიზებული

პორტის რეჟიმი (1, OUTPUT); // ქინძისთავები 1 -დან 8 -მდე კონფიგურირებულია როგორც გამომავალი ქინძისთავები

/ * სკანირების ქინძისთავები კონფიგურირებულია როგორც გამომავალი ქინძისთავები */

pin9Mode = გამოსავალი;

pin10Mode = OUTPUT;

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– ისთვის

ათობითი წერტილი = batt_voltage; // აღნიშნავს სადაც ათწილადი ჩნდება

// ორიგინალური მნიშვნელობა მონაცემების მანიპულირებამდე

ჩვენება ();

}

}

გირჩევთ: