ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.12.2023
Просмотров: 64
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ҒҰМАРБЕК ДАУКЕЕВ АТЫНДАҒЫ
АЛМАТЫ ЭНЕРГЕТИКА ЖӘНЕ БАЙЛАНЫС УНИВЕРСИТЕТІ
Зертханалық жұмыс №4
Мамандығы: Автоматтандыру және басқару
Орындаған:
Группа:
Тексерген:
______________________«_______»____________2023 жыл
(бағасы) (қолы)
Алматы 2023
4-зертханалық жұмыс. Сандық шығыстардың жұмыс демонстрациясы
Жұмыс мақсаты: Принциптік схемаларды оқу дағдыларын меңгересіз және электрондық конструкцияларды сипаттау тілін түсіну;
-
конденсатормен танысыңыз; -
сандық кірістердің жұмысын зерттеңіз;
Принциптік схема, принциптік электр схемасы-электр құрылғысының элементтері арасындағы байланыстарды шартты графикалық және әріптік- цифрлық белгілердің (пиктограммалардың) көмегімен беру үшін қызмет ететін графикалық кескін (модель).
Компоненттердіңанықталуы
Arduino. Суретте схемаларда тақтаның өзі қалай суретелетіні көрсетілген. Көріп отырғаныңыздай, тақтадағы барлық контактілер осы жерде белгіленген және мұқият жазылған.
-
Суретте резисторды білдіретін символ көрсетілген. -
Схемаларда таңбаның жанында резистордың номиналды мәнін және оның бірегей идентификаторын схема шегінде бейнелеу әдеттегідей (бұл
жағдайда 220 Ω және R1). Бұл схемалық диаграмманы оқу мен талдауды жеңілдетеді.
Тапсырма:жоғарыкернеудібасқарусхемалары.
Алгоритм
-
Төменде жобаның алгоритмі келтірілген: -
Түйменің басылғанын тексеріңіз. -
Егер батырма басылса, жарық диодты жарты секунд қосыңыз, содан кейін оны өшіріңіз. -
Егер түйме басылмаса, ештеңе жасамаңыз. -
Шексіздікке дейін қайталаңыз.
Құрал-жабдықтар
-
Осы жобаны іске асыру үшін қажетті жабдықтар төменде көрсетілген:
-
1. Бір түйме. -
2. Бір жарық диоды. -
3. Номиналы 560 Ом болатын бір резистор. -
4. 10 кОм номиналды бір резистор. -
5. Сыйымдылығы 100 нФ болатын бір конденсатор . -
6. Бір макет. -
7. Arduino Жабдық Тақтасы
Алдымен суретте көрсетілген схеманы тақтаға жинаймыз. 10 кОм номиналды резистор GND шығысы мен 7 байланысын қосатынын ескеріңіз. Бұл резистор келісу немесе тарту деп аталады, өйткені сигнал болмаған кезде ол сандық кірістегі кернеуді нөлге дейін төмендетеді. Сонымен қатар, 100 кОм резисторға параллель қосылған 10 нФ қосымша конденсатор қарапайым тізбекті жасайды, ол түйіспелердің әсерін жояды, осылайша паразиттерді сүзуге көмектеседі
Импульстар. Түймені басқан кезде сандық кіріс Жоғары кернеу қолданылады. Түйме босатылған кезде, сандық кіріс номиналы 10 кОм резистормен "жерге тартылады", ал сыйымдылығы 100 нФ конденсатор сәл кідіріс тудырады. Бұл кідіріс бар шамадан көп ұзақтығы дребезга контактілер
кнопкалар. Кідіріс кернеудің 0 В дейін төмендеуін баяулатады
және осылайша көптеген жалған позитивтерді жояды.
Тапсырма. Схемалық схеманы қолдана отырып, tinkenkard моделін жинаңыз.
Оны құрастыру бойынша қадамдық нұсқауларды орындаңыз, өйткені бұл компоненттерді қалай қосуға болатындығын түсінуге көмектеседі:
-
Түймені орналасу тақтасына салыңыз. -
Орналасу тақтасын сағат тіліне қарсы 90 градусқа бұрап, 10 кОм резисторды, қысқа өткізгіш пен конденсаторды салыңыз. -
Arduino тақтасындағы 5 V байланысын сым кесіндісімен тақтаның сол жақ тік қатарымен қосыңыз. Arduino тақтасындағы GND контактісін басқа сым кесіндісімен 5 V контактісіне қосылған тік қатардың оң жағында орналасқан тақтадағы тік қатармен жалғаңыз . Көлденең өткізгішпен GND тік қатарын және батырманың сол жақ төменгі контактісін қосыңыз. -
Arduino тақтасындағы сандық кіріс 7 сымымен және батырманың жоғарғы оң жақ контактісімен қосыңыз. -
Жарық диодын GND тік қатарындағы коннекторлардың біріне қысқа терминалмен (катодпен), ал оң жақтағы көлденең қатардағы коннекторлардың біріне ұзын терминалмен (анодпен) салыңыз. Содан кейін резисторды жарық диодының оң жағындағы 560 Ом-ға жалғаңыз
Тапсырма. Скетчті енгізіңіз.
-
1. Скетчті жүктеп басыңыз да, бірден жіберуіңіз керек, бұл ретте светодиод жарты секунд жануы тиіс.
-
Сандық кіру. -
№4 зертханалық жұмыс - сандық кірістер жұмыстарын көрсету
-
1. #define LED 12 -
#define BUTTON 7 -
void setup() -
{ -
2. pinMode (өз скетчіңізді жазыңыз)
2.Скетчті өзгерту
-
Светодиод қосулы болуына байланысты скетчта интервал ұзақтығын өзгерту (бұл схеманы әлі бөлшектемеңіз)
-
Скетчті талдау -
Осы зертханалық жұмыста жаңа элементтерді, скетчтерді зерттеңіз: #define нұсқаулары, сандық кіріс режимін анықтау және егер болса. -
#Define көмегімен тұрақтыларды анықтау -
Void setup () функциясының алдында бекітілген айнымалыларды анықтайтын #define (1) нұсқаулары бар: эскизді құрастыру кезінде IDE анықталған атаулардың барлық кірістерін сандық мәндермен алмастырады. Мысалы, IDE 2-жолда LED сөзін кездестірсе, ол оны 12 санымен алмастырады. -
#Define пәрменін біз көбінесе жарық диодтары мен түймелері қосылған сандық кіріс/шығыс эскиздеріне сілтеме жасау үшін қолданамыз. Мәннен кейін #define командасында үтір нүктесі жоқ екенін ескеріңіз. Жалпы алғанда, эскиздердегі байланыс нөмірлері және басқа бекітілген мәндер (мысалы, кідіріс уақыты) дәл осылай анықталған жөн.
Қосымша материал. Сандық кіріс күйлерін оқу
#define LED1 12
#define LED2 13
#define BUTTON 7
void setup()
{
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(BUTTON, INPUT);
}
void loop()
{
if(digitalRead (BUTTON)==HIGH)
{
for(int i=LED1; i<=LED2;i++){
digitalWrite(i, HIGH);
delay(500);
digitalWrite(i, LOW);
}
}
else
{
digitalWrite(LED1 && LED2, LOW);
}
}
-
Батырманың күйін оқи алу үшін void setup () функциясында байланыс алдымен сандық кіру режимінде жұмыс істейді: -
pinMode (түйме, енгізу); // түймеге кіру
-
Содан кейін, сандық кіріс батырмасы 5 В кернеу көзіне қосылатындығын анықтау үшін (яғни, түйме басылған ба), digitalread(pin) функциясы шақырылады, мұнда pin — күйі оқылуы керек сандық кіріс нөмірі. Функция жоғары (Байланыс кернеуі 5 В-қа жақын) немесе төмен (байланыс кернеуі 0 В-қа жақын) мәнін қайтарады.
-
If көмегімен шешім қабылдау -
If операторы эскиздерде шешім қабылдауға және қабылданған шешімге байланысты әртүрлі кодты орындауға мүмкіндік береді. Мысалы, 4- жоба үшін скетчте 4.2-Листингте ұсынылған код қолданылды.
Листинг 4.2. If-then операторын қолданудың қарапайым мысалы: if (digitalRead(BUTTON) == HIGH)
-
{ -
digitalWrite(LED, HIGH); -
delay(500); -
digitalWrite(LED, LOW); -
}
4.2 листингіндегі бірінші жол if операторындағы шартты тексеруден басталады . Егер шарт шын болса (яғни кернеу жоғары мәнге ие), бұл түйме басылғанын және кодты бұйра жақшаларда орындауға болатындығын білдіреді.
-
Түймені басу фактісін анықтау үшін (digitalRead (BUTTON) HIGH мәнін қайтарған кезде) салыстыру операторын қолдандық (==). Егер == оператормен алмастырсаңыз != (тең емес), содан кейін түймені басқан кезде жарық диоды өшеді. Эскизді өзгертуге тырысыңыз және оның шынымен екеніне көз жеткізіңіз.
If-then-else көмегімен балама шешімдер қабылдау
-
If операторына, else тармағына балама әрекеттер тізбегін қосуға болады. Мысалы, 4.1 листингін 4.3 листингінде көрсетілгендей else тармағын қосу арқылы қайта жазсаңыз, түйме басылса, жарық диоды қосылады, әйтпесе ол өшеді. Егер if операторындағы тексеру жалған мәнді қайтарса, else пайдалану Arduino тақтасын кодтың екінші бөлігін орындауға мәжбүр етеді:
-
// Листинг 4.3 -
#define LED 12 -
#define BUTTON 7 -
void setup() -
{ -
pinMode(LED, OUTPUT); -
pinMode(BUTTON, INPUT); -
} -
void loop() -
{ -
if ( digitalRead(BUTTON) == HIGH ) -
{ -
digitalWrite(LED, HIGH); -
} -
else -
{ -
digitalWrite(LED, LOW); -
} -
}
Логикалық айнымалылар
-
Кейде тек екі күйі бар кейбір сипаттамаларды есте сақтау қажет, мысалы, қосу/өшіру немесе ыстық/суық. Логикалық (логикалық) айнымалы- аңызға айналған компьютерлік "бит", ол тек екі мәнді қабылдай алады: нөл (0, жалған) немесе бір (1, шындық).