Добавить материал и получить бесплатное свидетельство о публикации в СМИ
Эл. №ФС77-60625 от 20.01.2015
Свидетельство о публикации

Автоматическая выдача свидетельства о публикации в официальном СМИ сразу после добавления материала на сайт - Бесплатно

Добавить свой материал

За каждый опубликованный материал Вы получите бесплатное свидетельство о публикации от проекта «Инфоурок»

(Свидетельство о регистрации СМИ: Эл №ФС77-60625 от 20.01.2015)

Инфоурок / Доп. образование / Конспекты / Урок робототехники №5 "Кнопки и входы в Ардуино"
ВНИМАНИЮ ВСЕХ УЧИТЕЛЕЙ: согласно Федеральному закону № 313-ФЗ все педагоги должны пройти обучение навыкам оказания первой помощи.

Дистанционный курс "Оказание первой помощи детям и взрослым" от проекта "Инфоурок" даёт Вам возможность привести свои знания в соответствие с требованиями закона и получить удостоверение о повышении квалификации установленного образца (180 часов). Начало обучения новой группы: 28 июня.

Подать заявку на курс
  • Доп. образование

Урок робототехники №5 "Кнопки и входы в Ардуино"

библиотека
материалов

6 урок Ардуино


Кнопка
В следующем скетче будет использоваться кнопка с нормально разомкнутыми контактами, без фиксации.Это значит, что пока кнопка не нажата, ток через неё не идёт, а после отпускания, кнопка возвращается в исходное положение. 
В схеме, помимо кнопки используется резистор. В данном случае он не ограничивает ток, а "подтягивает" кнопку к 0в (GND). Т.е. пока кнопка не нажата на выводе Ardunio, к которому она подключена, будет низкий уровень. Резистор, используемый в схеме 10 кОм.

//определяем нажатие кнопки

int buttonPin = 7;

void setup(){

pinMode(buttonPin, INPUT);//инициализируем пин на вход

Serial.begin(9600);//инициализируем последовательный порт

}

void loop(){

if (digitalRead(buttonPin)==HIGH){//если кнопка нажата

Serial.println("pressed"); // выводим надпись "pressed"

} else {

Serial.println("unpressed");// иначе "unpressed"

}

}

В этом скетче несколько новых команд.
digitalRead(pinNumber)-эта команда принимает значение High (высокий уровень) и low (низкий уровень), того вывода, который мы проверяем. Предварительно в setup() этот вывод надо настроить на вход.
pinMode (buttonPin, INPUT); //где buttonPin это номер вывода, куда подсоединяется кнопка.
Последовательный порт позволяет отправлять Ardunio сообщения на компьютер, в то время, как сам контроллер выполняет программу. Это полезно для отладки программы, отправки сообщений на другие устройства или приложения. Чтобы включить передачу данных через последовательный порт (другое название UART или USART), надо инициализировать его в setup()
Serial.begin() имеет всего один аргумент-это скорость передачи данных между Ardunio и компьютером. скетче используется команда Serial.print() для вывода сообщения на экран в Ardunio IDE (Tools >> Serial Monitor).
If/else- конструкция позволяют контролировать ход выполнения программы, объеденив несколько проверок в одном месте.If(если) digitalRead возвращает значение HIGH, то на мониторе выводится слово "нажата". Else(иначе) на мониторе выводится слово " отжата" . Теперь можно попробовать включать и выключать светодиод по нажатию кнопки.

//button press detection with LED output

int buttonPin = 7;

int ledPin = 8;

void setup(){

pinMode(buttonPin, INPUT);//this time we will set button pin as INPUT

pinMode(ledPin, OUTPUT);

Serial.begin(9600);

}

void loop(){

if (digitalRead(buttonPin)==HIGH){

digitalWrite(ledPin,HIGH);

Serial.println("pressed");

} else {

digitalWrite(ledPin,LOW);

Serial.println("unpressed");

}

}


Аналоговый вход.
analogRead (pinNumber) analogRead позволяет считать данные с одного из аналоговых выводов Ardunio и выводит значение в диапазоне от 0 (0В) до 1023 (5В). Если напряжение на аналоговом входе будет равно 2.5В, то будет напечатано 2.5 / 5 * 1023 = 512
analogRead имеет только один аргумент- Это номер аналогового входа (А0-А5). В следующем скетче приводится код считывания напряжения с потенциометра. Для этого подключите переменный резистор, крайними выводами на пины 5V и GND, а средний вывод на вход А0.

Запустите следующий код и посмотрите в serial monitor, как меняются значения в зависимости от поворота ручки резистора.

//analog input


int potPin = A0;//к этому пину подсоединяется центральный вывод потенциометра


void setup(){

//аналоговый пин по умолчанию включен на вход, поэтому инициализация не нужна

Serial.begin(9600);

}


void loop(){

int potVal = analogRead(potPin);//potVal is a number between 0 and 1023

Serial.println(potVal);

}

Следующий скетч объединяет скетч нажатия кнопки и скетч управления яркостью светодиода. Светодиод будет включаться от кнопки, и управлять яркостью свечения будет потенциометр.

//button press detection with LED output and variable intensity

int buttonPin = 7;

int ledPin = 9;

int potPin = A0;

void setup(){

pinMode(buttonPin, INPUT);

pinMode(ledPin, OUTPUT);

Serial.begin(9600);

}

void loop(){

if (digitalRead(buttonPin)==HIGH){//if button pressed

int analogVal = analogRead(potPin);

int scaledVal = map(analogVal, 0, 1023, 0, 255);

analogWrite(ledPin, scaledVal);//turn on led with intensity set by pot

Serial.println("pressed");

} else {

digitalWrite(ledPin, LOW);//turn off if button is not pressed

Serial.println("unpressed");

}

}






Подайте заявку сейчас на любой интересующий Вас курс переподготовки, чтобы получить диплом со скидкой 50% уже осенью 2017 года.


Выберите специальность, которую Вы хотите получить:

Обучение проходит дистанционно на сайте проекта "Инфоурок".
По итогам обучения слушателям выдаются печатные дипломы установленного образца.

ПЕРЕЙТИ В КАТАЛОГ КУРСОВ

Автор
Дата добавления 07.02.2016
Раздел Доп. образование
Подраздел Конспекты
Просмотров332
Номер материала ДВ-426810
Получить свидетельство о публикации
Похожие материалы

Включите уведомления прямо сейчас и мы сразу сообщим Вам о важных новостях. Не волнуйтесь, мы будем отправлять только самое главное.
Специальное предложение
Вверх