Acsocad

Микроконтроллер AcsMP


Обозначение


Описание

Микроконтроллер является цифровым устройством, осуществляющим прием, обработку, хранение и передачу информации, управление исполнительными устройствами и средствами коммуникации. Программирование микроконтроллера AcsMP подобно программированию плат Arduino.

Характеристики

Микроконтроллер AcsMP представляет собой устройство с 8 контактами.

На вход микроконтроллера AcsMP не требуется подавать напряжение, т.к. источник питания встроен в плату и напряжение 5 В на контактах №1 и №2 доступно для подключения к датчикам и исполнительным устройствам.
Стрелками обозначено направление протекания тока. Индикатор "~" обозначает формирование ШИМ (PWM) сигнала на выходе соответствующего порта. Значения после "RX" и "TX" содержат информацию о количестве принятых и отправленных байт.



1 контакт - отрицательный контакт источника питания (земля).
2 контакт - положительный контакт источника питания.
3 контакт - порт №1 микроконтроллера: ввод и вывод, поддерживается ШИМ (PWM).
4 контакт - порт №2 микроконтроллера: ввод и вывод, поддерживается ШИМ (PWM).
5 контакт - порт №3 микроконтроллера: ввод и вывод, поддерживается ШИМ (PWM).
6 контакт - порт №4 микроконтроллера: ввод и вывод, поддерживается ШИМ (PWM).
7 контакт - порт ввода RX последовательного интерфейса Serial.
8 контакт - порт вывода TX последовательного интерфейса Serial.

Настройка

Для написания программы необходимо дважды щелкнуть по элементу. После этого слева появится окно, в котором необходимо записать команды внутри функции первоначальной настройки при запуске микроконтроллера setup и бесконечно повторяющейся функции loop. В разделе "Программирование AcsMP" приводится информация по доступным функциям и переменным.


Программирование AcsMP

Функции работы со временем



unsigned int millis() - возвращает число миллисекунд с начала включения микроконтроллера.

unsigned int micros() - возвращает число микросекунд с начала включения микроконтроллера.

delay(пауза) - остановка выполнения программы на соответствующее число миллисекунд.

delayMicroseconds(пауза) - остановка выполнения программы на соответствующее число микросекунд.


Функции работы с прерываниями и таймерами



attachInterrupt(номер, функция, режим) - устанавливает прерывание (значение 0 для порта №1, значение 1 для порта №2, значение 2 для порта №3, значение 3 для порта №4), срабатывающее в зависимости от режима (если на порте низкий сигнал - LOW; если на порте произошла смена уровня сигнала - CHANGE; если на порте сигнал был низким, а стал высоким - RISING; если на порте сигнал был высоким, а стал низким - FALLING) и вызывающее функцию-обработчик прерываний типа "void functionname()". Внутри обработчика прерываний не должно быть сложных вычислений, а все переменные должны быть глобальными с ключевым словом volatile, например, "volatile int counter=0;".

detachInterrupt(номер) - отключает указанное прерывание.

primarytimer_attach(функция) - устанавливает основной таймер, который срабатывает на каждом шаге моделирования (зависит от установленного шага и метода решения дифференциальных уравнений) и вызывает функцию-обработчик типа "void functionname()". Внутри обработчика прерываний не должно быть сложных вычислений, а все переменные должны быть глобальными с ключевым словом volatile, например, "volatile int counter=0;".

primarytimer_detach() - отключает таймер.


Функции работы с портами ввода-вывода



pinMode(порт, режим) - переводит порт в режим ввода INPUT или в режим вывода OUTPUT.

int digitalRead(порт) - возвращает уровень сигнала на заданном порте (низкий LOW или высокий HIGH).

digitalWrite(порт, уровень) - устанавливает уровень сигнала LOW или HIGH на заданном порте.

int analogRead(порт) - возвращает число в диапазоне от 0 до 1023, соответствующее уровню напряжения на порте.

analogWrite(порт, период) - формирует на выходе порта ШИМ сигнал с заданным периодом в диапазоне от 0 (0%) до 255 (100%).

unsigned int pulseIn(порт, уровень, ожидание) - возвращает количество микросекунд с момента появления сигнала с заданным уровнем до смены уровня сигнала, либо до окончания времени ожидания.


Функции работы с последовательным интерфейсом



Serial - глобальная переменная, позволяющая работать с последовательным интерфейсом.

Serial.begin(скорость) - обязательная функция для инициализации скорости работы интерфейса, скорость выбирается из стандартного диапазона: 110, 300, 600, 1200, 2400, 4800, 9600, …, 115200, …, 1000000, 2000000.

char Serial.available() - возвращает число 1, если на вход RX подан хотя бы 1 байт информации.

char Serial.read() - ожидает получения 1 байта на входе RX и возвращает его код в диапазоне от 0 до 255.

Serial.write(код) - отправляет в порт TX 1 байт информации и не ожидает его передачу.

Serial.print(строка) - отправляет в порт TX массив символов.

Serial.println(строка) - отправляет в порт TX массив символов, дополненный символами изменения положения каретки и переноса строки.


Функции работы с сервоприводами



Servo1 - глобальная переменная, позволяющая работать с сервоприводом 1.

Servo1.attach(порт) - инициализирует функции работы с сервоприводом 1, который подключен к заданному порту.

Servo1.write(значение) - устанавливает значение угла поворота сервопривода 1 в диапазоне от 0 до 180.

int Servo1.read() - возвращает значение углав поворота сервопривода 1 в диапазоне от 0 до 180.

Servo1.detach() - отключает функции работы с сервоприводом 1.


Servo2 - глобальная переменная, позволяющая работать с сервоприводом 2.

Servo2.attach(порт) - инициализирует функции работы с сервоприводом 2, который подключен к заданному порту.

Servo2.write(значение) - устанавливает значение угла поворота сервопривода 2 в диапазоне от 0 до 180.

int Servo2.read() - возвращает значение углав поворота сервопривода 2 в диапазоне от 0 до 180.

Servo2.detach() - отключает функции работы с сервоприводом 2.


Функции работы с сетью WiFi



WiFi.begin(SSID, пароль) - подключается к WiFi сети. В эмуляции доступна сеть "ACS" с паролем "123". Подключение занимает приблизительно 0,1 с, необходимо организовать задержку перед выполнением сетевых функций.ОБЯЗАТЕЛЬНАЯ ФУНКЦИЯ.

WiFi.disconnect() - отключение от WiFi сети.

unsigned char WiFi.status() - возвращается состояние сети WL_CONNECTED (подключено), WL_CONNECT_FAILED (ошибка подключения), WL_IDLE_STATUS (подключение), WL_DISCONNECTED (разъединено).


Функции сетевого клиента



WiFiClient - структура для работы с сетевыми подключениями, например "WiFiClient client;" определит переменную client типа WiFiClient.

WiFiClient WiFiClient_Create() - инициализирует переменную client для работы с сетевыми подключениями, например, "client=WiFiClient_Create();". ОБЯЗАТЕЛЬНАЯ ФУНКЦИЯ.

long client.connect(домен, порт) - подключение к порту port на домене domain, возвращает не ноль в случае успешного подключения.

long client.available() - возвращает не ноль, если имеются данные для чтения.

unsigned char client.read() - считывает и возвращает 1 байт принятых данных.

long client.write(символ) - записывает в выходной поток 1 байт данных и возвращает 1 в случае успеха.

long client.print(строка) - записывает в выходной поток текст (массив символов) и возвращает количество записанных символов.

long client.println(строка) - записывает в выходной поток текст (массив символов) с символами каретки и переноса строки и возвращает количество записанных символов.

long client.stop() - закрывает подключение (необходима задержка в случае отправки данных, иначе часть данных будет утеряна). ОБЯЗАТЕЛЬНАЯ ФУНКЦИЯ.


Функции сервера



WiFiServer - структура для работы с сервером, встроена статическая переменная server типа WiFiServer, создание новых не допускается.

server.setip(ip) - устанавливает IP-адрес сервера (строка, по умолчанию значение равно "127.0.0.1").

server.setport(порт) - устанавливает номер порта (число, по умолчанию значение равно 80).

long server.begin() - запускает сервер и возвращает не ноль, если сервер успешно запущен.

WiFiClient server.available() - возвращает сетевого клиента типа WiFiClient с настроенным подключением (client.connected() равно 1) при наличии внешнего подключения к микроконтроллеру и клиента с отсутствующим подключением (client.connected() равно 0) в ином случае. После получения подключенного клиента работа с ним осуществляется аналогично, но с учетом того, что сначала нужно считать принятые данные, а затем отправить ответ. Этот сетевой клиент должен быть обязательно завершен функцией client.stop();

 


 
Рейтинг@Mail.ru
Все материалы сайта принадлежат лично Василию Щербакову.
Допускается использование материалов в некоммерческих или учебных целях с указанием ссылки на этот сайт.