Расчет дискретныхэлектрорадиоэлементов



Для данного проекта используются следующие радиоэлементы: потенциометр, мотор, сервопривод.

 

Характеристикисемисегментного индикатора:

· Цвет символов: красный 660 нм.

· Рабочий ток постоянный: 12-20 мА.

· Максимальный ток (импульсный):    80 мА.

· Падение напряжения: 1.7...2 В.

· Интенсивность света на сегмент: 8000...12000.

· Размеры: 12.5х19х8 мм.

· Рабочая температура: -25°C..+85°C.

 

Характеристики потенциометра:

· Мощность: 0,5 Вт

· Точность: ±5 %

· Максимальное рабочее напряжение: 350 В

 

Характеристики ЖК-Дисплея:

· Контроллер: КБ1013ВГ6.

· Подсветка: Белая.

· Типстекла: STN Negative Blue.

· Разреш.: 16х2.

· U_пит.: 5V.

· Размер индикатора, мм: 84x44x13.0.

· Видимая область, мм: 62x19.

· Символ, мм: 2.95x5.55.

· Рабочая температура: -20+70 С.

· Температура хранения: -30+80.

 

 

2.4 Создание программы на языке С++ для микропроцессорной системы

Задание 1

intpot = A0 //задаем переменной pot аналоговый pin A0

floatresult = 0,0;

voidsetup(){

Serial.begin(9600);// открыть канал передаче данных.

pinMode(pot,INPUT);//задаем переменную potкак вход.

}

void loop(){

result = analogRead(pot);//считываемзначенияпеременнойpot.

serial.println(result);//отправитьсодержимоепеременнойvalнакомпьютер.

delay(200);//пауза

}

 

 

Рисунок 9 – Алгоритм работы программы для задания 1

 

Задание 2

#define FIRST_SEGMENT_PIN 2//Объявления пременной подключения к пин 2

#define SEGMENT_COUNT  7//Объявления пременной подключения к пин 7

 #define POT_PIN A0//Объявления пременной подключения к пинA0

bytenumberSegments[10] = {

0b00111111, 0b00001010, 0b01011101, 0b01011110, 0b01101010,

0b01110110, 0b01110111, 0b00011010, 0b01111111, 0b01111110,

};// префикс «0b» означает, что целое число за ним записано в

// в двоичном коде. Единицами мы обозначим номера сегментов

// индикатора, которые должны быть включены для отображения

// арабской цифры. Всего цифр 10, поэтому в массиве 10 чисел.

// Нам достаточно всего байта для хранения

// комбинации сегментов для каждой из цифр.

void setup()

{

Serial.begin(9600);// открыть канал передаче данных.

for (inti = 0; i<SEGMENT_COUNT; ++i);//циклгдеiсповторением цикла увеличивается на 1

pinMode(i + FIRST_SEGMENT_PIN, OUTPUT);//

}

 

voidloop()

{

intnumber= (analogRead(POT_PIN) / 100) % 10;//Определяем число, которое собираемся отображать. Пусть им

будет номер текущей секунды, зацикленный на десятке

 

Serial.println(number);

delay(250);

intmask = numberSegments[number]; // получаем код, в котором зашифрована арабская цифра

for (inti = 0; i<SEGMENT_COUNT; ++i) // для каждого из 7 сегментов индикатора...

booleanenableSegment = bitRead(mask, i);// определяем: должен ли он быть включён.

// считываем бит, соответствующий текущему

// сегменту «i». Истина — он установлен (1), ложь — нет (0)

digitalWrite(i + FIRST_SEGMENT_PIN, enableSegment); // включаем/выключаем сегмент на основе полученного значения

 

}

}

 

 

Рисунок 10 – Алгоритм работы программы для задания 2

 

Задание 3

#include<LiquidCrystal.h>// Подключаем стандартную библиотеку

 

intval;//объявления переменной val

LiquidCrystallcd(4, 5, 10, 11, 12, 13); // Инициализируем объект-экран

 

void setup()

{

Serial.begin(9600); // открыть канал передаче данных.

lcd.begin(16, 2);

}

 

void loop()

{

lcd.setCursor(0,1); // устанавливаем размер (количество столбцов и строк) экрана

val=analogRead(A0);//считываем значения с пина

Serial.println(val);

lcd.print(val); //печатаем значения переменной val

lcd.print(" polojenie               ");// печатаем первую строку

lcd.println();// печатаем вторую строку

 

delay(250);//пауза

 

}

Рисунок 11 – Алгоритм работы программы для задания 3


 


Дата добавления: 2018-02-28; просмотров: 638; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!