Arduino құрастыру ортасында LED жану қалай жасалады?
LED жануының қалай жасалатынын көрсету үшін LED-тің өшуі және жануы туралы мысалды қарастырайық. Мұндай жану өшуді көбінесе арнайы жатын бөлмелерде қолданады. Яғни жарық түсу күшіне қарап LED светодиодтары жанып өшетін болады. Қараңғы болса жанады, жарық болса өшеді. Жарықтың түсу күшіне қарап LED светодиоды өшіп-жанып тұрады. Бұл аталған LED мысалын қарастыру үшін фоторезистор қолданамыз. Ең басты жұмысты осы фоторезистор атқаратын болады. Фоторезистор кедергісі жарықтың түсуіне тікелей байланысты. Фоторезистор арқылы өтетін қуат, жарықтың деңгейіне қарап өзгеріп отырады. Қуатты бөлгіштен біз шығыс сигналдарын береміз.
Схемасы төмендегідей түрде болады:
Ток көзі 0-5В Arduino-дан алында, А0 пинін шығыс сигналы ретінде қолданамыз.
Өте жарық LED-светодиодын шығару үшін оны 13 пинге 220 Ом резистор арқылы жалғауға болады. Жарық мәні 0-1024 аралығында болады.
int sensorPin = A0; // шығыс аяғын аналогтік-цифрлік өңдегішке орнатамыз (аналоговый-цифровой преобразователь АЦП)
unsigned int sensorValue = 0; // фоторезистордың цифрлық мәні
void setup(){
pinMode(13, OUTPUT);
Serial.begin(9600); // ақпарат алмасу үшін байланыс жасаймыз
}
void loop(){
sensorValue = analogRead(sensorPin); // фоторезистордан мәнді есептейміз
if(sensorValue<500) digitalWrite(13, HIGH); // жарықты қосамыз
else digitalWrite(13, LOW); // жарықты өшіреміз}
Жарық диодының әр түрлі деңгейін(жарықтың біртіндеп өсуі) қалай беруге болады?
Жарық диодының әр түрлі деңгейін енді-импульстік модуляцияның (широтно-импульсная модуляция) көмегімен беруге болады. Енді-импульстік модуляцияны светодиод жарығын немесе мотордың айналу жылдамдығын басқару кезінде қолданады. Адамның көзі жарық диоды арқылы берілетін 50 Гц-тан жоғары жылтылдауды байқамайды. Жарық диодының әр түрлі деңгейі үшін мысал ретінде шамшырақтың жарығын өсуін қарастырайық: Керекті құрылғылар:
- Arduino UNO;
- макеттік плата (макетная плата);
- светодиод;
- резистор (220 Ом);
- жалғауыш сымдар;
Схемасы:
Макеттегі схемасы:
Маңызды ескерту!: Arduino-ның кез-келгені порты енді-импульстік модуляцияны қолдай бермейді, егер қуатты басқару керек болса, онда 3,5,6,9,10,11 пиндерді қолданған жөн.
Скетчі:
#define LED_PIN 9 //9-шы пинді тұрақты деп аламыз
void setup() {
pinMode(LED_PIN, OUTPUT); //9-шы пинді шығыс сигналы деп аламыз
}
void loop() {
analogWrite(LED_PIN, 85); // 0 және 5В ток күшін ол 0 мен 255 жарықты ұлғайтқыш арасында бөлінеді. 85 ол 255-тің 1/3 бөлігі
delay(250); //250 милисекунд ұстап тұрамыз.
analogWrite(LED_PIN, 170); // 170 ол 255-тің 2/3 бөлігі, қуат күші артты, онда жарықтың күші де артады деген сөз
delay(250); //250 милисекунд ұстап тұрамыз.
analogWrite(LED_PIN, 255); // қуат 5 В болды, ал жарық та максимальді болады 255.
delay(250); //250 милисекунд ұстап тұрамыз.
Айнымалы резистордың тұтқасын айналдыру арқылы, светодиодтың жарықтығын қалай өзгертуге болады (шамның жарығы басқарылады)?
Айнымалы резистордың тұтқасын айналдыру арқылы, светодиодтың жарықтығын Айнымалы резисторды ‘AnalogIn’ портына қосып және оның мәндерін оқу арқылы, яғни, analogRead() функциясы арқылы өзгерте аламыз. Ол үшін, алдымен Айнымалы резисторды (потенциометр) Arduino-ға қосудан бастаймыз. Айнымалы резистор (потенциометр) көміртекті өткізгішке негізделген. Айнымалы резистордың тұтқасын айналдыру барысында кедергі 0-ден бастап көрсетілген 10 кОм-ға дейін өзгеріп отырады. Айнымалы резистордың үш аяғын сәйкесінше 5V тоқ көзіне, Аналогті кіру(Analog IN) А0, жерге ( GND) тетіктеріне қосамыз. Сонымен қатар бізге керекті светодиодты ардуиноға жалғаймыз. Жалпы принципиальді схемасы төмендегідей болады:
Скетч: