Სარჩევი:

ორობითი ათწილადის გამომთვლელი: 8 ნაბიჯი
ორობითი ათწილადის გამომთვლელი: 8 ნაბიჯი

ვიდეო: ორობითი ათწილადის გამომთვლელი: 8 ნაბიჯი

ვიდეო: ორობითი ათწილადის გამომთვლელი: 8 ნაბიჯი
ვიდეო: ათობითიდან ორობითში გადაყვანა 2024, ნოემბერი
Anonim
ორობითი ათწილადის გამომთვლელი
ორობითი ათწილადის გამომთვლელი

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

ამ პროექტის შექმნა მოითხოვს ბევრ კვლევას, რომელიც მოიცავს ძირითადად იმის გაგებას, თუ როგორ მუშაობს სრული და ნახევარი შემმუშავებელი.

ნაბიჯი 1: საჭირო მასალები

ამ პროექტისთვის დაგჭირდებათ შემდეგი მასალები:

  • Arduino UNO
  • ოთხი დაფა
  • ცხრა ვოლტიანი ბატარეა
  • შვიდი XOR კარიბჭე (2 XOR ჩიპი)
  • შვიდი და კარიბჭე (2 და ჩიპი)
  • სამი OR კარიბჭე (1 OR ჩიპი)
  • ხუთი LED
  • რვა 330 ოჰმიანი რეზისტორი
  • LCD დისპლეი
  • ოთხი კაცი-ქალი მავთული
  • ბევრი მამაკაცი-კაცი მავთული
  • მავთულის სტრიპტიზიორი
  • საერთო ანოდი RGB LED

ღირებულება (მავთულის გარეშე): $ 79.82

ყველა მასალის ღირებულება ნაპოვნია ABRA ელექტრონიკაზე.

ნაბიჯი 2: 4 ბიტიანი შემქმნელის გაგება

4 ბიტიანი შემქმნელის გაგება
4 ბიტიანი შემქმნელის გაგება

სანამ დავიწყებთ, თქვენ უნდა გესმოდეთ, თუ როგორ მუშაობს ოთხი ბიტიანი დამატება. როდესაც ჩვენ პირველად ვუყურებთ ამ წრეს, თქვენ შეამჩნევთ, რომ არსებობს ნახევარი ამომრთველი წრე და სამი სრული ამომრთველი სქემა. იმის გამო, რომ ოთხი ბიტიანი შემავსებელი არის სრული და ნახევარი შემკვრელის კომბინაცია, მე გამოვაქვეყნე ვიდეო, სადაც განმარტებულია, თუ როგორ მუშაობს ორი სახის შემმუშავებელი.

www.youtube.com/watch?v=mZ9VWA4cTbE&t=619s

ნაბიჯი 3: შექმენით 4 ბიტიანი შემქმნელი

შენდება 4 ბიტიანი შემქმნელი
შენდება 4 ბიტიანი შემქმნელი
შენდება 4 ბიტიანი შემქმნელი
შენდება 4 ბიტიანი შემქმნელი

ახსნა, თუ როგორ უნდა ავაშენოთ ოთხი ბიტიანი დამატება ძალიან რთულია, რადგან ის მოიცავს უამრავ გაყვანილობას. ამ სურათების საფუძველზე შემიძლია რამდენიმე ხრიკი მოგაწოდოთ ამ წრის შესაქმნელად. პირველ რიგში, თქვენი ლოგიკური ჩიპების მოწყობის გზა შეიძლება იყოს ძალიან მნიშვნელოვანი. იმისათვის, რომ გქონდეთ სუფთა წრე, შეუკვეთეთ თქვენი ჩიპები ამ თანმიმდევრობით: XOR, AND, OR, AND, XOR. ამ წესრიგის დაცვით, არა მხოლოდ თქვენი წრე იქნება მოწესრიგებული, არამედ მისი ორგანიზებაც ძალიან გაგიადვილდებათ.

კიდევ ერთი დიდი ხრიკი არის თითოეული შემქმნელის აშენება სათითაოდ და მარჯვენა მხრიდან მარცხენა მხარეს. საერთო შეცდომა, რაც ბევრმა ადამიანმა დაუშვა არის ყველა დამატების ერთდროულად გაკეთება. ამით თქვენ შეიძლება გაგიფუჭდეთ გაყვანილობაში. 4-ბიტიანი დამატების ერთმა შეცდომამ შეიძლება გამოიწვიოს ყველაფერი არ იმუშაოს,

ნაბიჯი 4: მიაწოდეთ ძალა და საფუძველი წრედს

9 ვოლტიანი ბატარეის გამოყენებით მიეცით ენერგია და დაფქვა პურის დაფაზე, რომელიც შეიცავს ოთხ ბიტიან დამატებას. დანარჩენი 3 დაფისთვის, მიეცით მას ძალა და საფუძველი Arduino UNO– ს საშუალებით.

ნაბიჯი 5: LED- ების გაყვანილობა

გაყვანილობის LED- ები
გაყვანილობის LED- ები

ამ პროექტისათვის ხუთი LED- ები გამოყენებული იქნება როგორც შემავალი და გამომავალი მოწყობილობა. როგორც გამომავალი მოწყობილობა, LED აანთებს ორობითი რიცხვის რაოდენობას, რაც დამოკიდებულია ოთხ ბიტიან დამატებაზე შეტანილ შეყვანის მიხედვით. როგორც შეყვანის მოწყობილობა, იმისდა მიხედვით, თუ რომელი LED- ები არის ჩართული და გამორთული, ჩვენ შევძლებთ LCD ეკრანზე გადაკეთებული ორობითი რიცხვის პროგნოზირებას ათობითი რიცხვის სახით. LED- ის დასაკავშირებლად თქვენ დაუკავშირდებით ოთხი ბიტიანი დამატების მიერ შექმნილ ერთ ჯამს LED- ის ანოდის ფეხს (LED- ის გრძელი ფეხი), თუმცა ამ ორს შორის მოათავსეთ 330 ოჰმეტიანი რეზისტორი. შემდეგ შეაერთეთ LED- ის კათოდური ფეხი (LED- ის მოკლე ფეხი) სახმელეთო რკინიგზასთან. რეზისტორსა და ჯამის მავთულს შორის, დააკავშირეთ მამაკაცი მამრობითი მავთული Arduino UNO– ს ნებისმიერ ციფრულ პინთან. გაიმეორეთ ეს ნაბიჯი სამი დარჩენილი თანხისთვის და განხორციელებისთვის. ციფრული ქინძისთავები, რომლებიც მე გამოვიყენე, იყო 2, 3, 4, 5 და 6.

ნაბიჯი 6: გაყვანილობის საერთო ანოდი RGB LED

გაყვანილობა საერთო ანოდი RGB LED
გაყვანილობა საერთო ანოდი RGB LED

ამ პროექტისთვის, ამ RGB LED– ის მიზანია შეცვალოს ფერები, როდესაც ახალი ათობითი რიცხვი იქმნება LCD ეკრანზე. როდესაც პირველად უყურებთ RGB საერთო ანოდს, შეამჩნევთ, რომ მას აქვს 4 ფეხი; წითელი ფეხის ფეხი, ძალა (ანოდი) ფეხი, მწვანე შუქი ფეხი და ლურჯი შუქი ფეხი. დენის (ანოდი) ფეხი დაუკავშირდება ელექტროგადამცემი ხაზს, მიიღებს 5 ვოლტს. შეაერთეთ დარჩენილი სამი ფერის ფეხი 330 ოჰმეტიანი რეზისტენტებით. რეზისტორის მეორე ბოლოში გამოიყენეთ მამრობითი და მამრობითი მავთულები, რათა დაუკავშიროთ ის PWM ციფრულ პინთან Arduino– ზე. PWM ციფრული პინი არის ნებისმიერი ციფრული პინი, რომლის გვერდით არის მოქნილი ხაზი. PWM ქინძისთავები, რომლებიც მე გამოვიყენე, იყო 9, 10 და 11.

ნაბიჯი 7: LCD ეკრანის გაყვანილობა

LCD ეკრანის გაყვანილობა
LCD ეკრანის გაყვანილობა

ამ პროექტისთვის, LCD დისპლეი დააპროექტებს მოაქციე ორობითი რიცხვის ათწილადში. როდესაც ჩვენ ვუყურებთ LCD ეკრანს, შეამჩნევთ 4 მამაკაცის ქინძისთავებს. ეს ქინძისთავებია VCC, GND, SDA და SCL. VCC– სთვის გამოიყენეთ მამრობითი და მდედრობითი მავთული, რათა დააკავშიროთ VCC პინი პურის დაფაზე დენის სარკინიგზო ხაზთან. ეს უზრუნველყოფს 5 ვოლტს VCC პინზე GND ქინძისთავისთვის დააკავშირეთ იგი მიწის სარკინიგზო მაგისტრალურ მამაკაცთან მდედრობითი მავთულით. SDA და SCL ქინძისთავებით, შეაერთეთ იგი ანალოგიურ პინთან მამრობითი და მავთულხლართებით. მე დავუკავშირე SCL პინი ანალოგიურ პინ A5– ს და SDA პინ ანალოგ პინ A4– ს.

ნაბიჯი 8: კოდის წერა

ახლა, როდესაც მე ავუხსენი ამ პროექტის სამშენებლო ნაწილი, ახლა დავიწყოთ კოდი. პირველ რიგში, ჩვენ უნდა გადმოვწეროთ და შემოვიტანოთ შემდეგი ბიბლიოთეკები; LiquidCrystal_I2C ბიბლიოთეკა და მავთულის ბიბლიოთეკა.

#ჩართეთ #ჩართეთ

ამის დასრულების შემდეგ, თქვენ უნდა გამოაცხადოთ ყველა საჭირო ცვლადი. ნებისმიერი ტიპის კოდში, თქვენ ჯერ უნდა გამოაცხადოთ თქვენი ცვლადები.

const int ციფრი 1 = 2;

const int ციფრი 2 = 3;

const int ციფრი 3 = 4;

const int ციფრი 4 = 5;

const int ციფრი 5 = 6;

int ციფრული 1 = 0;

int ციფრული 2 = 0;

int digitum3 = 0;

int ციფრები 4 = 0;

int ციფრული 5 = 0;

char array1 = "ორობითი ათწილადიდან";

char array2 = "გადამყვანი";

int tim = 500; // შეფერხების დროის მნიშვნელობა

const int redPin = 9;

const int greenPin = 10;

const int bluePin = 11;

#განსაზღვრეთ COMMON_ANODE

LiquidCrystal_I2C LCD (0x27, 16, 2);

Void setup- ში () თქვენ აცხადებთ პინის ტიპს თქვენი ყველა ცვლადისთვის. თქვენ ასევე გამოიყენებთ სერიულ დაწყებას, რადგან ჩვენ ვიყენებთ analogWrite () - ს

ბათილად დაყენება ()

{

სერიული.დაწყება (9600);

pinMode (ციფრი 1, INPUT);

pinMode (ციფრი 2, INPUT);

pinMode (ციფრი 3, INPUT);

pinMode (ციფრი 4, შეყვანა);

pinMode (ციფრი 5, INPUT);

lcd.init ();

lcd. განათება ();

pinMode (redPin, OUTPUT);

pinMode (greenPin, OUTPUT);

pinMode (bluePin, OUTPUT);

Void კონფიგურაციაში (), მე შევქმენი for მარყუჟი, რომ შევქმნა შეტყობინება ამ პროექტის სახელის შესახებ. მიზეზი, რის გამოც ის არ არის ბათილი მარყუჟში () არის ის, რომ თუ ის ამ სიცარიელეშია, შეტყობინება კვლავ განმეორდება

lcd.setCursor (15, 0); // დააყენეთ კურსორი სვეტზე 15, სტრიქონი 0

for (int positionCounter1 = 0; positionCounter1 <17; positionCounter1 ++)

{

lcd.scrollDisplayLeft (); // გადააქვს ეკრანის შინაარსი ერთი სივრცე მარცხნივ.

lcd.print (მასივი 1 [positionCounter1]); // დაბეჭდეთ შეტყობინება LCD– ზე.

დაგვიანება (დრო); // დაელოდეთ 250 მიკროწამს

}

lcd. წმინდა (); // ასუფთავებს LCD ეკრანს და ათავსებს კურსორს მარცხენა ზედა კუთხეში.

lcd.setCursor (15, 1); // დააყენეთ კურსორი სვეტზე 15, სტრიქონი 1

for (int positionCounter = 0; positionCounter <9; positionCounter ++)

{

lcd.scrollDisplayLeft (); // გადააქვს ეკრანის შინაარსი ერთი სივრცე მარცხნივ.

lcd.print (array2 [positionCounter]); // დაბეჭდეთ შეტყობინება LCD ეკრანზე.

შეფერხება (დრო); // დაელოდეთ 250 მიკროწამს

}

lcd. წმინდა (); // ასუფთავებს LCD ეკრანს და ათავსებს კურსორს მარცხენა ზედა კუთხეში.

}

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

ახლა თქვენ მხოლოდ უნდა გაუშვათ კოდი და ისიამოვნოთ თქვენი ორობითი ათწილადიანი კონვერტორით.

გირჩევთ: