Отправка значения переменника и кнопки в serial-порт. Не работает.
- Войдите на сайт для отправки комментариев
Втр, 28/05/2013 - 13:28
Здравствуйте. Не могли-бы вы ткнуть меня носом, почему не работает программа. Требуется принять значение с 4 аналоговых входов и 6-7 кпопок и отправить в serial-порт. Мне хотя-бы показать по 1 аналоговому и 1 цифровому входу, а дальше я допилю.
Программу пишу первый раз, многое еще не понимаю, а чем дольше читаю, тем больше утопаю в море инфы).
Вот код передатчика
// Передатчик команд управления v0.6 // Органы управления - 4 переменника, 9 кнопок. // Исполнительные механизмы - 2мотора-вибратора, 1 светодиод //Цель: // а)при нажатии кнопки 1-4 отправить в сериал-порт информацию о текущем значении. (кнопка с фиксацмей значения) // б)при нажатии кнопки 7-12 отправить в сериал-порт информацию о текущем значении. (кнопка без фиксации значения // в)при вращении ручки потенциометра 1-4 отправить в сериал-порт информацию о текущем значении. int pot1x = 0; //Обьявляем А0 аналоговый пин считывания показаний потенциометра1 (ось x) (погружение-всплытие) int pot1y = 1; //Обьявляем А1 аналоговый пин считывания показаний потенциометра1 (ось y) (неиспользуется) int pot2x = 2; //Обьявляем А0 аналоговый пин считывания показаний потенциометра2 (ось x) (влево-вправо) int pot2y = 3; //Обьявляем А1 аналоговый пин считывания показаний потенциометра2 (ось y) (вперед-назад) int knopka1 = 3; //кнопка1 подключена к 3 цифровому контакту (фиксируемая) (освещение 1) int knopka2 = 4; //кнопка2 подключена к 4 цифровому контакту (фиксируемая) (освещение 2) int knopka3 = 5; //кнопка3 подключена к 5 цифровому контакту (фиксируемая) (освещение 3) int knopka4 = 6; //кнопка4 подключена к 6 цифровому контакту (фиксируемая) (освещение 4) int knopka7 = 7; //кнопка7 подключена к 7 цифровому контакту (манипулятор - расжать) int knopka8 = 8; //кнопка8 подключена к 8 цифровому контакту (манипулятор - сжать) int knopka9 = 9; //кнопка9 подключена к 9 цифровому контакту (камера - вверх) int knopka11 = 10; //кнопка11 подключена к 10 цифровому контакту (камера - вниз) int knopka12 = 11; //кнопка12 подключена к 11 цифровому контакту (резервная) int motorPin = 12; //моторы в пульте управления подключены к 12 цифровому контакту int ledPin = 13; //светодиод в пульте управления подключен к 13 цифровому контакту void setup() { analogReference(DEFAULT); //Объявляем диапазон чтения с аналогового порта. Значение DEFAULT оставляем, если используем переменные резистры (в моем случае 10ком) (считывание от 0 до 5вольт) Serial.begin(9600); //Включаем сериал-порт на скорости 9600 pinMode(ledPin, OUTPUT); // Инициализируем 13 выход под светодиод. pinMode(motorPin, OUTPUT); // Инициализируем 12 выход под вибраторы. pinMode(knopka1, INPUT); //отмечаем контакт кнопки 1 - как вход digitalWrite(knopka1, HIGH); // включить подтягивающий резистор к питанию. pinMode(knopka2, INPUT); //отмечаем контакт кнопки 2 - как вход digitalWrite(knopka2, HIGH); // включить подтягивающий резистор к питанию. pinMode(knopka3, INPUT); //... digitalWrite(knopka3, HIGH); pinMode(knopka4, INPUT); digitalWrite(knopka4, HIGH); pinMode(knopka7, INPUT); digitalWrite(knopka7, HIGH); pinMode(knopka8, INPUT); digitalWrite(knopka8, HIGH); pinMode(knopka9, INPUT); digitalWrite(knopka9, HIGH); pinMode(knopka11, INPUT); digitalWrite(knopka11, HIGH); pinMode(knopka12, INPUT); digitalWrite(knopka12, HIGH); } void loop() { Serial.write('a'); //метка начала передачи значения канала "а" Serial.println(analogRead(pot1x), DEC); //выдаст в порт значение потенциометра 1x Serial.write('b'); //метка начала передачи значения канала "b" Serial.println(analogRead(pot1y), DEC); //выдаст в порт значение потенциометра 1y Serial.write('c'); Serial.println(analogRead(pot2x), DEC); Serial.write('d'); Serial.println(analogRead(pot2y), DEC); Serial.write('e'); Serial.println(digitalRead(knopka1)); //кнопка 1 Serial.write('f'); Serial.println(digitalRead(knopka2)); //кнопка 2 Serial.write('j'); Serial.println(digitalRead(knopka3)); //кнопка 3 Serial.write('h'); Serial.println(digitalRead(knopka4)); //кнопка 4 Serial.write('i'); Serial.println(digitalRead(knopka7)); //кнопка 7 Serial.write('g'); Serial.println(digitalRead(knopka8)); //кнопка 8 Serial.write('k'); Serial.println(digitalRead(knopka9)); //кнопка 9 Serial.write('l'); Serial.println(digitalRead(knopka11)); //кнопка 11 Serial.write('m'); Serial.println(digitalRead(knopka12)); //кнопка 12 Serial.print("\r\n"); //выведет символы "\r\n" – перевод строки Serial.print("\r\n"); //выведет символы "\r\n" – перевод строки delay(1000); }
А вот приемника
Можем и ткнуть. Зачем так делать? http://arduino.ru/forum/programmirovanie/peredacha-znachenii-po-serial-chto-ya-delayu-ne-tak
Поиском пользоваться умеете? Тем на эту тему (тавтология) здесь на форуме с десяток имеется. В верхнем правом углу пишите "управление по сериал" и просматриваете найденые темы.
во что форум животворящий делает! ковырялся 2 дня вместо того, чтобы правильно сформулировать поиск. впреть буду более внимательным. Больое спасибо.