Мазмуну:

Ондук эсептегичтен экилик: 8 кадам
Ондук эсептегичтен экилик: 8 кадам

Video: Ондук эсептегичтен экилик: 8 кадам

Video: Ондук эсептегичтен экилик: 8 кадам
Video: Экилик эсептөө системасынан ондук эсептөө системасына жана тескерисинче которуу алгоритми 2024, Ноябрь
Anonim
Ондук эсептегичтен экилик
Ондук эсептегичтен экилик

Он биринчи класстагы компьютердик инженерия үчүн мен акыркы долбоорду чечишим керек болчу. Башында мен эмне кыларымды билбедим, анткени ал кээ бир аппараттык компоненттерди камтышы керек болчу. Бир нече күндөн кийин классташым мага бир нече ай мурун биз түзгөн төрт бит кошуучуга негизделген долбоорду ишке ашырууну айтты. Ошол күндөн кийин, менин төрт биттик суммамды колдонуп, ондукка ондукка алмаштыргыч түзө алдым.

Бул долбоорду түзүү көп изилдөөнү талап кылат, анын ичинде негизинен толук жана жарым коштоочу кантип иштээрин түшүнүү кирет.

1 -кадам: Керектүү материалдар

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

  • Arduino UNO
  • төрт нан
  • тогуз вольттуу батарея
  • жети XOR дарбазасы (2 XOR чипи)
  • жети ЖАНА дарбазалар (2 ЖАНА фишкалар)
  • үч ЖЕ дарбаза (1 ЖЕ чип)
  • беш LED
  • сегиз 330 омдук резисторлор
  • LCD дисплей
  • төрт эркек-ургаачы зым
  • эркек-эркек зымдары көп
  • зым чечүүчү
  • жалпы анод RGB LED

Баасы (зымдарды кошпогондо): $ 79.82

Бардык материалдык чыгымдар ABRA электроникасынан табылган.

2 -кадам: 4 Bit Adderди түшүнүү

4 Bit Adder жөнүндө түшүнүк
4 Bit Adder жөнүндө түшүнүк

Баштоодон мурун, сиз төрт биттик кошкуч кандай иштээрин түшүнүшүңүз керек. Бул схеманы биринчи жолу караганыбызда, жарым сумма схемасы жана үч толук сумма схемасы бар экенин байкайсыз. Төрт биттик сумма толук жана жарым суммадан тургандыктан, мен видеонун эки түрүнүн кантип иштээрин түшүндүрүп бердим.

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

3 -кадам: 4 Bit Adderди куруу

4 биттик кошкучту куруу
4 биттик кошкучту куруу
4 биттик кошкучту куруу
4 биттик кошкучту куруу

Төрт биттик сумманы кантип куруу керектигин түшүндүрүү абдан кыйын, анткени ал көп зымдарды камтыйт. Бул сүрөттөрдүн негизинде мен бул схеманы куруу үчүн сизге бир нече амалдарды бере алам. Биринчиден, логикалык чиптериңизди уюштуруу жолу абдан маанилүү болушу мүмкүн. Таза схемага ээ болуу үчүн, чиптериңизди төмөнкү тартипте заказ кылыңыз: XOR, AND, OR, AND, XOR. Бул буйрукка ээ болуу менен, сиздин схемаңыз тыкан гана болбостон, уюштурууңуз да абдан оңой болот.

Дагы бир чоң амал - бул ар бир сумманы бирден жана оң тараптан сол жагына куруу. Көпчүлүк адамдар жасаган жалпы ката - бул бир эле учурда бардык суммаларды жасоо. Муну менен сиз зымдарды бузуп алсаңыз болот. 4-бит кошуучудагы бир ката бүт иштебей калышы мүмкүн,

4 -кадам: Районго электр жана жер берүү

9 вольттук батареяны колдонуп, төрт биттик сумманы камтый турган панельди электр менен камсыз кылыңыз. Калган 3 нан үчүн, Arduino UNO аркылуу бийликти жана жерди камсыздаңыз.

5 -кадам: Жарык диоддорун туташтыруу

Жарык берүүчү LED
Жарык берүүчү LED

Бул долбоор үчүн беш светодиод киргизүү жана чыгаруу түзмөгү катары колдонулат. Чыгуучу түзмөк катары, LED төрт биттик кошуучуга киргизилген киргизүүлөргө жараша бинардык санды жарык кылат. Киргизүүчү түзмөк катары, кайсы светодиоддор күйүп жана өчүп тургандыгына жараша, биз ондук сан катары ЖК дисплейге айландырылган экилик санды проектирлей алабыз. Светодиодду зымга берүү үчүн, сиз төрт биттик суммадан пайда болгон суммалардын бирин LEDдин аноддук бутуна (LEDдин узун буту) туташтырасыз, бирок бул экөөнүн ортосуна 330 омдук резистор коюңуз. Андан кийин LEDдин катоддук бутун (LEDдин кыска буту) жер темир жолуна туташтырыңыз. Резистор менен суммалык зымдын ортосунда, эркек менен эркек зымына Arduino UNOнун каалаган санарип пинине туташтырыңыз. Калган үч сумма жана аткаруу үчүн бул кадамды кайталаңыз. Мен колдонгон санарип казыктар 2, 3, 4, 5 жана 6 болчу.

6 -кадам: Жалпы аноддун RGB сымын өткөрүү

Жалпы аноддук RGB сымдарын өткөрүү
Жалпы аноддук RGB сымдарын өткөрүү

Бул долбоор үчүн бул RGB LEDдин максаты - LCD дисплейинде жаңы ондук сан пайда болгондо түстөрдү өзгөртүү. Сиз биринчи жолу жалпы анодду RGB алып келгенде, анын 4 буту бар экенин байкайсыз; кызыл жарык бут, күч (анод) бут, жашыл жарык бут жана көк жарык бут. Күч (анод) буту 5 вольтту алуу менен электр рельсине туташтырылат. Калган үч түстүү буттарды 330 омдук резисторлор менен туташтырыңыз. Резистордун экинчи четинде, Arduinoдогу PWM dgital пинге туташтыруу үчүн эркектен эркекке зым колдонуңуз. PWM санариптик пин - бул жанындагы ийри сызыгы бар каалаган санарип пин. Мен колдонгон PWM төөнөгүчтөрү 9, 10 жана 11 болгон.

7 -кадам: ЖК дисплейди туташтыруу

LCD дисплейинин зымдары
LCD дисплейинин зымдары

Бул долбоор үчүн ЖК дисплей конверттелген экилик санды ондук санапка чыгарат. ЖК дисплейди караганыбызда, 4 эркек казыгын байкайсыз. Бул казыктар VCC, GND, SDA жана SCL. VCC үчүн, эркек менен аялдын зымын колдонуп, VCC пинин нан панелиндеги электр темир жолуна туташтырыңыз. Бул VCC пинге 5 вольтту камсыз кылат GND пин үчүн, аны темир жолго эркек -ургаачы зым менен туташтырыңыз. SDA жана SCL төөнөгүчтөрү менен, аны аялдык зым менен эркектин аналогдук пинге туташтырыңыз. Мен SCL пинин A5 аналогдук пинге жана SDA пинин А4 аналогдук пинге туташтырдым.

8 -кадам: Код жазуу

Эми мен бул долбоордун курулуш бөлүгүн түшүндүрдүм, эми кодду баштайлы. Биринчиден, биз алгач төмөнкү китепканаларды жүктөп алып, импорттошубуз керек; LiquidCrystal_I2C китепканасы жана зым китепканасы.

#кошуу #кошуу

Муну аткаргандан кийин, бардык керектүү өзгөрмөлөрдү жарыялоо керек. Коддун бардык түрүндө, сиз биринчи кезекте өзгөрмөлөрүңүздү жарыялашыңыз керек.

const int digit1 = 2;

const int digit2 = 3;

const int digit3 = 4;

const int digit4 = 5;

const int digit5 = 6;

int digitum1 = 0;

int digitum2 = 0;

int digitum3 = 0;

int digitum4 = 0;

int digitum5 = 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 () колдонуп жаткандыктан, сиз сериялык баштоону колдоносуз

жараксыз орнотуу ()

{

Serial.begin (9600);

pinMode (digit1, INPUT);

pinMode (digit2, INPUT);

pinMode (digit3, INPUT);

pinMode (digit4, INPUT);

pinMode (digit5, INPUT);

lcd.init ();

lcd.backlight ();

pinMode (redPin, OUTPUT);

pinMode (greenPin, OUTPUT);

pinMode (bluePin, OUTPUT);

Void setup () ичинде, мен бул долбоордун атын айткан билдирүүнү түзүү үчүн for циклин түздүм. Анын боштук циклында () жоктугунун себеби, эгер ал боштукта болсо, анда билдирүү кайталана берет

lcd.setCursor (15, 0); // курсорду 15 -графага, 0 -сапка коюңуз

үчүн (int positionCounter1 = 0; positionCounter1 <17; positionCounter1 ++)

{

lcd.scrollDisplayLeft (); // Дисплейдин мазмунун бир боштукка солго жылдырат.

lcd.print (array1 [positionCounter1]); // ЖКга билдирүү басып чыгаруу.

кечигүү (tim); // 250 микросекунд күт

}

lcd.clear (); // ЖК экранды тазалайт жана курсорду жогорку сол бурчка жайгаштырат.

lcd.setCursor (15, 1); // курсорду 15 -графага, 1 -сапка коюңуз

үчүн (int positionCounter = 0; positionCounter <9; positionCounter ++)

{

lcd.scrollDisplayLeft (); // Дисплейдин мазмунун бир боштукка солго жылдырат.

lcd.print (array2 [positionCounter]); // ЖКга билдирүү басып чыгаруу.

кечигүү (tim); // 250 микросекундду күт

}

lcd.clear (); // ЖК экранды тазалайт жана курсорду жогорку сол бурчка жайгаштырат.

}

Эми биз боштукту орнотууну () бүтүргөндөн кийин, боштуктун айлануусуна өтөлү (). Боштук циклинде, мен бир нече if-else билдирүүлөрүн түздүм, алар кээ бир жарыктар күйүп же өчүп турганда, дисплейде белгилүү бир ондук санды көрсөтөт. Мен боштуктун ичиндеги нерселерди жана мен жараткан көптөгөн боштуктарды көрсөткөн документти тиркеп койдум. Документти көрүү үчүн бул жерди басыңыз

Эми сиз кодду иштетип, ондуктан ондукка жаңы экиликтен ырахат алышыңыз керек.

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