Последовательное общение с ардуином

Последовательное общение с ардуином
Последовательное общение с ардуином
Anonim

Общение последовательно с Arduino

Общение с Arduino серийно очень просто. Здесь мы покажем, как проводить измерения температуры, а затем отправлять измерения по последовательному каналу связи.

В отличие от других устройств, последовательная связь Arduino проста в использовании. Последовательная связь может быть проводной или беспроводной, например, в последовательном подключении Bluetooth. В среде программирования Arduino есть функция, называемая последовательным монитором, которая специально предназначена для просмотра последовательной передачи данных. Чтобы активировать его:

  1. Перейти на панель инструментов
  2. Нажмите кнопку «Серийный монитор»
  3. Выберите скорость передачи, заданную функцией Serial.begin ().

Вот некоторые функции последовательной связи Arduino.

Serial.begin (скорость)

Эта функция устанавливает скорость последовательной связи. У него есть один параметр, скорость, обычно установленная на 9600.

Serial.read ()

Эта функция принимает данные из последовательного порта.

Serial.write (Val)

Эта функция отправляет данные через последовательный порт. Параметр val может быть одной переменной, строкой или массивом.

Serial.printIn (val, формат)

Эти функции печатают val в последовательном мониторе IDE Arduino с использованием определенного формата.

Измерение температуры с помощью LM35

LM35 - идеальный датчик температуры для измерения температуры окружающей среды. Ниже приведены различные версии устройства.

Image
Image

Схема подключения

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

Выход LM35 может быть подключен непосредственно к аналоговому входу Arduino. Поскольку Ардуино аналого-цифровой преобразователь (АЦП) имеет разрешение 1024 бит, и опорное напряжение 5 В, то уравнение, используемое для вычисления температуры от значения АЦПА:

temp = ((5.0 * analogRead (pin)) / 1024) * 100.0

Эксперимент:

Требуется оборудование

  • 1 датчик температуры LM35
  • 4 светодиода x
  • 2 х 220 Ом резисторы
  • 1 x Arduino Mega2560
  • 1 макет
  • 10 x перемычек
Image
Image

Принципиальная электрическая схема

Подключите компоненты, как показано на схеме выше:

Датчик будет питаться контактами 5V и GND от Arduino. Выход датчика подключается к выходу Arduino A0, и когда код считывает значение этого аналогового напряжения с помощью функции analogRead (0), он возвращает значение от 0 до 1023. Затем программа вычисляет температуру по формуле:

temp = ((5.0 * analogRead (pin)) / 1024) * 100.0

или

temp = analogRead (pin) * 0.48828125;

Наконец, показание температуры будет записано на последовательный монитор IDE с функцией Serial.print (). Типичный дисплей будет выглядеть как снимок экрана ниже:

Image
Image

Вывод

Код

Код для этого эксперимента показан ниже. В дополнение к отображению температуры на последовательном мониторе IDE программа загорается желтым светодиодом, если измеренная температура составляет около 70 градусов C или зеленый свет, если он ниже 70 градусов C. Это делается с использованием инструкций if-else и функция digitalWrite (контакт, состояние).


const int adc = 0; //naming pin 0 of analog input side as adc const int high = 8; // For turning on and off yellow LED const int low = 9; // For turning on and off Green LED void setup() { Serial.begin(9600); //Starting serial Communication at baud rate of 9600 pinMode(high, OUTPUT); //declaring LED pins as OUTPUT pinMode(low, OUTPUT); } void loop() { int adc = analogRead(0); //reading analog voltage and storing it in an integer adc = adc * 0.48828125; //converting reading into Celsius Serial.print("TEMPRATURE = "); //to Display on serial monitor Serial.print(adc); //this will show the actualtemp Serial.print("*C"); //TEMPRATURE = 27*C ETC Serial.println(); //To end the line delay(1000); //1 Sec delay /* if (temperature (adc) > 70 ° C) turn on Yellow Leds turn off Green Leds else turn off Yellow Leds turn on Green Led */ if(adc>70) // This is the control statement { digitalWrite(high, HIGH); digitalWrite(low, LOW); } else { digitalWrite(high, LOW); digitalWrite(low, HIGH); } }

Скачать код

видео

Попробуйте этот проект сами! Получить спецификацию.