Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Топ:
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Интересное:
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
2018-01-30 | 2574 |
5.00
из
|
Заказать работу |
|
|
Листинг:
1. #include <Servo.h>
2. #define SENSOR A0
3. Servo myServo;
4. void setup() {
5. myServo.attach(9);
6. }
7. void loop() {
8. //читаем показание сенсора освещенности
9. int lightness = analogRead(SENSOR);
10. //преобразуем показания сенсора в угол поворота шторки
11. //мин значение освещенности 800 потому что при полной темноте
12. //напряжение на входе А0 падает до 3,56В - это минимум. Макс.
13. //напряжение 4,53В. Соотвестенно находим минимум по пропорции
14. //3,56*1024/4,53 = 804
15. int angle = map(lightness, 800, 1023, 0, 180);
16. //открываем-закрываем шторки в зависимости от освещения
17. myServo.write(angle);
18. }
Эксперимент 18. Тестер батареек
В этом эксперименте мы выводим на жидкокристаллический дисплей данные о напряжении, измеренном на батарейке.
Принципиальная схема
Код
1. #include <LiquidCrystal.h>
2. #define DIODE_DROP 0.7
3. LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
4. void setup()
5. {
6. pinMode(7, OUTPUT);
7. lcd.begin(16, 2);
8. lcd.print("Battery voltage:");
9. }
10. void loop()
11. {
12. digitalWrite(7, HIGH);
13. float voltage = analogRead(A0) / 1024.0 * 10.0;
14. if (voltage > 0.1)
15. voltage += DIODE_DROP;
16. lcd.setCursor(0, 1);
17. lcd.print(voltage, 2);
18. lcd.print(" Volts");
19. }
Вопросы для проверки себя
Из-за чего измерения напряжения в этом эксперименте могут быть неточными (на что мы можем повлиять)?
Из-за падения напряжения на диоде, нужно прибавить это падение к конечному результату.
Какая библиотека облегчает работу с нашим текстовым экраном? Какие шаги нужно предпринять до начала вывода текста на него?
В этом эксперименте мы снова пользуемся готовой библиотекой <LiquidCrystal.h> для создания объекта lcd и использования его методов
· lcd.begin(cols,rows) с помощью которого мы задаем количество колонок и строк нашего дисплея
· lcd.print(data) для вывода данных. У него есть второй необязательный параметр BASE, передав который, можно выбрать систему счисления, так же, как в примере с Serial.print().
|
· lcd.setCursor(col,row) устанавливает курсор в переданную колонку и строку. Последующий вывод будет осуществляться с этого места.
Каким образом мы задаем позицию, с которой на экран выводится текст?
lcd.setCursor(col,row) устанавливает курсор в переданную колонку и строку. Последующий вывод будет осуществляться с этого места.
Можем ли мы писать на экране кириллицей? Как?
Можем, если закодируем каждую букву в шестнадцатеричной системе.
Эксперимент 19. Светильник, управляемый по USB
В этом эксперименте мы отправляем устройству команды, как ему светить.
Принципиальная схема
Код
1. #define LED_PIN 9
2. String message;
3. void setup()
4. {
5. pinMode(LED_PIN, OUTPUT);
6. Serial.begin(9600);
7. }
8. void loop()
9. {
10. while (Serial.available()) {
11. char incomingChar = Serial.read();
12. if (incomingChar >= '0' && incomingChar <= '9') {
13. message += incomingChar;
14. } else if (incomingChar == '\n') {
15. analogWrite(LED_PIN, message.toInt());
16. message = "";
17. }
18. }
19. }
Вопросы для проверки себя
Какие объекты позволяют легко манипулировать текстовыми данными?
Для работы с текстом существуют объекты-строки (англ. string)Stringmessage;
|
|
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!