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