Предположим, что сервопривод управляет шторкой, и нам нужно поддерживать постоянное количество света в помещении. Создайте такой механизм. — КиберПедия 

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Предположим, что сервопривод управляет шторкой, и нам нужно поддерживать постоянное количество света в помещении. Создайте такой механизм.

2018-01-30 2574
Предположим, что сервопривод управляет шторкой, и нам нужно поддерживать постоянное количество света в помещении. Создайте такой механизм. 5.00 из 5.00 4 оценки
Заказать работу

Листинг:

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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.007 с.