русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Задание


Дата добавления: 2015-08-31; просмотров: 1002; Нарушение авторских прав


1. Написать, отладить и протестировать программу управления яркостью свечения зеленого светодиода. Переключение яркости на следующий уровень должно происходить при нажатии кнопки. Количество уровней яркости – не менее четырех. Для каждой градации яркости с помощью вольтметра измерить напряжение на соответствующем выводе микроконтроллера. Результаты измерений свести в таблицу.

#define RED RED_LED

int brightness = 190;

int fadeAmount = 10;

const int buttonPin = PUSH2;

int buttonState = 0;

void setup()

{

pinMode(RED, OUTPUT);// nothing happens in setup

pinMode(buttonPin, INPUT_PULLUP);// nothing happens in setup

}

 

void loop()

{

buttonState = digitalRead(buttonPin);

// fade in from min to max in increments of 5 points:

if (buttonState == LOW)

{

brightness = brightness - fadeAmount;

}

analogWrite(RED, brightness);

if (brightness == 0) brightness = 190;

delay(30);

}

 

Напряжения, В:

2.55

1.88

1.34

0.67

0.13

 

2. Написать, отладить и протестировать программу управления частотой мигания красного светодиода. Управление осуществить с помощью потенциометра R6 (рис. 3.4): положение движка потенциометра должно управлять частотой мигания.

int sensorPin = A6; // select the input pin for the potentiometer

int ledPin = 11; // select the pin for the LED

int sensorValue = 0; // variable to store the value coming from the sensor

 

void setup() {

// declare the ledPin as an OUTPUT:

pinMode(ledPin, OUTPUT);

}

 

void loop() {

// read the value from the sensor:

sensorValue = analogRead(sensorPin);

// turn the ledPin on

digitalWrite(ledPin, HIGH);

// stop the program for <sensorValue> milliseconds:

delay(sensorValue);



// turn the ledPin off:

digitalWrite(ledPin, LOW);

// stop the program for for <sensorValue> milliseconds:

delay(sensorValue);



}

 

3. Написать, отладить и протестировать программу чтения значения аналогового сигнала с движка потенциометра R6. Интервал времени между двумя последовательными чтениями:

· вариант 1 – 200 мс,

· вариант 2 – 300 мс,

· вариант 3 – 400 мс,

· вариант 4 – 500 мс.

Считанное значение сигнала должно передаваться в последовательный порт в двух видах:

· в виде значения выходного кода АЦП,

· в виде значения напряжения, с двумя знаками в дробной части числа, единица измерения [В].

·

 

const int analogInPin = A6; // Analog input pin that the potentiometer is attached to

const int analogOutPin = 11; // Analog output pin that the LED is attached to

 

int sensorValue = 0; // value read from the pot

int outputValue = 0; // value output to the PWM (analog out)

double Voltage;

 

void setup() {

// initialize serial communications at 9600 bps:

Serial.begin(9600);

}

 

void loop() {

sensorValue = analogRead(analogInPin);

Voltage = sensorValue*3.0/1024.0;

outputValue = map(sensorValue, 0, 1023, 0, 255);

analogWrite(analogOutPin, outputValue);

 

// print the results to the serial monitor:

Serial.print("sensor = " );

Serial.print(sensorValue);

Serial.print("\t output = ");

Serial.println(Voltage);

delay(200);

}

 

4. Написать, отладить и протестировать программу измерения меняющегося во времени аналогового сигнала и передачи измеренных значений в последовательный порт. Измеряемый сигнал – выходной сигнал фильтра низкой частоты R4C1 (рис. 3.4). Период измерения сигнала – 50 мс. Входной сигнал для фильтра формировать последовательностью импульсов, подаваемых на вход инвертора на транзисторе VT1. Параметры импульсов:

· вариант 1 – период 8с, коэффициент заполнения 0.4, количество импульсов 5.

В последовательный порт передавать значения:

· время от момента старта программы, единица измерения – миллисекунда;

· напряжение на выходе фильтра, 2 знака в дробной части числа, единица измерения – В.

 

int sensorPin = 15;

int gen = 11;

uint16_t START, TIME;

double Vout;

 

void setup()

{

pinMode (gen, OUTPUT);

Serial.begin(9600);

}

 

void measurement()

{

Vout = analogRead(sensorPin)*3.0/1023.0;

Serial.print("time = ");

Serial.print(TIME);

Serial.print("\t output = ");

Serial.println(Vout);

}

 

void loop()

{

for (int i=0; i<5; i++)

{

START = millis();

digitalWrite(gen, HIGH);

do

{

TIME = millis();

if (TIME%50==0) measurement();

} while (TIME-START<=3200);

digitalWrite(gen, LOW);

 

START = millis();

do

{

TIME = millis();

if (TIME%50==0) measurement();

} while (TIME-START<=4800);

}

delay(100000);

}

 

 

период 8с, коэффициент заполнения 0.4, количество импульсов 5.

Вывод: В ходе лабораторной работы изучили основные средства микроконтроллера MSP430 для ввода-вывода аналоговых сигналов, основных приемов программирования микроконтроллера MSP430 для операций ввода-вывода аналоговых сигналов и передачи результатов измерений по последовательному интерфейсу.



<== предыдущая лекция | следующая лекция ==>
Модуль аналогового компаратора. | Некристаллические полупроводниковые материалы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.038 сек.