Для чего нужен ОрбиКрафт
Подсистемы конструктора
Инструкции по работе с ОрбиКрафт
Уроки
Лабораторная оснастка
Знакомство с Arduino
Полезная нагрузка на базе Arduino
Обратная связь
Новости
Для чего нужен ОрбиКрафт
Подсистемы конструктора
Инструкции по работе с ОрбиКрафт
Уроки
Лабораторная оснастка
Знакомство с Arduino
Полезная нагрузка на базе Arduino
Обратная связь
Новости
Это старая версия документа!
Фоторезистор - это полупроводниковый прибор, электрическое сопротивление которого меняется в зависимости от интенсивности падающего на него света. Чем интенсивней свет, тем меньше становится сопротивление фоторезистора.
Фоторезистор имеет два вывода: один подключается к питанию, второй через резистор к земле. В месте соединения вывода фоторезистора с резистором устанавливается провод для считывания его показаний. Номинал резистора от 1 до 10 кОм. В зависимости от величины резистора будет меняться диапазон показаний датчика.
На платформе tinkercad изменить освещенность резистора можно перемещая ползунок слева направо.
#define photores A0 //создаем переменную для фоторезистора int light; //создаем переменную для хранения показаний фоторезистора void setup(){ pinMode(photores, INPUT); //настраиваем пин, к которому подключен фоторезистор, как вход Serial.begin(9600); //настраиваем работу с монитором порта } void loop(){ light = analogRead(photores); //считываем показания фоторезистора и сохраняем в переменную light Serial.print("Light = "); //выводим в монитор порта слово "Light: " Serial.println(light); //выводим в монитор порта значение переменной light и ждем полсекунды delay(500); }
#define photores A0 //создаем переменную для фоторезистора #define led 3 //создаем переменную для светодиода int light; //создаем переменную для хранения показаний фоторезистора int day = 400; //создаем переменную для условия день-ночь(светло-темно) void setup(){ pinMode(photores, INPUT); //настраиваем пин, к которому подключен фоторезистор, как вход pinMode(led, OUTPUT); //настраиваем пин, к которому подключен светодиод, как выход Serial.begin(9600); //настраиваем работу с монитором порта } void loop(){ light = analogRead(photores); //считываем показания фоторезистора и сохраняем в переменную light Serial.print("Light = "); Serial.println(light); //выводим показания фоторезистора в монитор порта if(light<day){ //если если текущая освещенность меньше 400, то включаем светодиод digitalWrite(led, HIGH); } else{ //иначе светодиод выключен digitalWrite(led, LOW); } delay(100); //задержка 100 миллисекунд }
#include <Servo.h> //подключаем библиотеку для работы с сервомотором #define photores A0 //создаем переменную для фоторезистора Servo myservo; //объявляем сервомотор int light; //создаем переменную для хранения показаний фоторезистора int msec; //создаем переменную, отвечающую за скорость движений сервомотора //эта переменная определяет время задержки сервомотора в каждой позиции во время его движения //чем больше значение переменной, тем медленнее вращается сервомотор void setup(){ pinMode(photores, INPUT); //настраиваем пин, к которому подключен фоторезистор, как вход myservo.attach(2); //настраиваем пин 2 как управляющий пин сервомотора } void loop(){ for(int i=0; i<=180; i++){ //цикл для вращения сервомотора из 0 в 180 myservo.write(i); delay(msec); checkLight(); //функция, проверяющая уровень освещенности } for(int i=180; i>=0; i--){ //цикл для вращения сервомотора из 180 в 0 myservo.write(i); delay(msec); checkLight(); //функция, проверяющая уровень освещенности } } //функция считывает показания фоторезистора //затем преобразует их во время задержки сервомотора в каждой позиции void checkLight(){ light = analogRead(photores); msec = map(light, 6, 679, 100, 5); }