Ви не увійшли.
Сторінки 1
А что именно не так работает?
Попробуй выставить яркость всего этого на минимум, если заработает как надо - не хватает мощности источника питания.
Всем огромное спасибо за помощь.
Смена аддона решила проблему вывода в консоль.
Про мини остался на работе. К нему подключена плата передней панели от спутникового тюнера. На фотографии аналогичная плата, только подключена к другому МК (ну не фотографировал я свою поделку).
Фотографию прикрепил, чтобы понятнее было на какой ноге что висит.
RX, TX, 6 и 7 пины выведены на те же ноги, что и у меня (специально прозванивал).
А какой аддон Вы используете? Какой процессор выбираете?
Плату использовал такую:
Примерная схема платы:
#define LED_DELAY 4 // Время показа каждого разряда (при увеличении будет заметно мерцание)
#define LED_FA 6 //PWM - Пин FA на плате: первый символ (разряд единиц)
#define LED_FB 9 //PWM - Пин FB на плате: второй символ (разряд десятков)
#define LED_FC 10 //PWM - Пин FC на плате: третий символ (разряд сотен)
#define LED_FD 11 //PWM - Пин FD на плате: четвертый символ (разряд тысяч)
#define LED_DATA 2 // - Пин DA на плате
#define LED_CLCK 3 //PWM - Пин CK на плате
#define BUTTON_K0 7 // - Пин K0 на плате
#define BUTTON_K1 8 // - Пин K1 на плате
void setup() {
// В COM-порт будем записывать
Serial.begin(115200); // Скорость работы COM-порта
Serial.print("void setup - start");
Serial.println();
// Установим нужные порты на выход
pinMode(LED_FA, OUTPUT); // для красного светодиода
pinMode(LED_FB, OUTPUT); // для красного светодиода
pinMode(LED_FC, OUTPUT); // для красного светодиода
pinMode(LED_FD, OUTPUT); // для красного светодиода
analogWrite(LED_FA,LOW); // в отличии от 9,10 и 11 - нужно инвертировать сигнал и использовать analogWrite
digitalWrite(LED_FB,HIGH);
digitalWrite(LED_FC,HIGH);
digitalWrite(LED_FD,HIGH);
pinMode(LED_DATA, OUTPUT);
pinMode(LED_CLCK, OUTPUT);
pinMode(BUTTON_K0, INPUT); // для считывания кнопок на линии К0
pinMode(BUTTON_K1, INPUT); // для считывания кнопок на линии К1
}
void loop() {
Serial.print("void loop");
Serial.println();
analogWrite(LED_FA,HIGH);//включим индикатор на 6-ом пине
byte buttonsLine0 = digitalRead(BUTTON_K0);
byte buttonsLine1 = digitalRead(BUTTON_K1);
Cur_digit1 = 0b11000000;
if ( buttonsLine0 == LOW ) {
Serial.print("Button FA-K0");
Cur_digit1 = 0b11111001;
if ( buttonsLine1 == LOW ) {
Serial.print(" FA-K1");
Cur_digit1 = 0b10100100;
}
Serial.println();
} else
if ( buttonsLine1 == LOW ) {
Serial.print("Button FA-K1");
Serial.println();
Cur_digit1 = 0b10110000;
}
shiftOut(LED_DATA, LED_CLCK, MSBFIRST, Cur_digit1);
delay(LED_DELAY);
analogWrite(LED_FA,LOW);
digitalWrite(LED_FB,LOW);
Cur_digit1 = 0b11000000;
buttonsLine0 = digitalRead(BUTTON_K0);
buttonsLine1 = digitalRead(BUTTON_K1);
if ( buttonsLine0 == LOW ) {
Serial.print("Button FB-K0");
Cur_digit1 = 0b11111001;
if ( buttonsLine1 == LOW ) {
Serial.print(" FB-K1");
Cur_digit1 = 0b10100100;
}
Serial.println();
} else
if ( buttonsLine1 == LOW ) {
Serial.print("Button FB-K1");
Serial.println();
Cur_digit1 = 0b10110000;
}
shiftOut(LED_DATA, LED_CLCK, MSBFIRST, Cur_digit1);
delay(LED_DELAY);
digitalWrite(LED_FB,HIGH);//выключим индикатор на 9-ом пине
//=========
// По аналогии для FC и FD
//=========
}
Так же пробовал оставить только FB и FC (второй и третий разряды индикатора)
И, как оказалось, порядок разрядов я попутал, т.е. вместо 0001 (для единицы) у меня выводилось 1000. В рабочем скетче уже поправил, а в тестовом осталось так как есть.
Прочитал я внимательно.
Просты Вы писали про нано, а у меня про мини.
Интересная у вас плата...
Могу дать поиграться
Ну а сколько чашек кофе стоит помощь реношника?
Еще не обсуждали, но готов обсудить этот вопрос в личку.
MikeM пише:Я бы припаял один к L и R, другой к F и B. А вообще лучше поискать схему
А почему у B два выхода? И к какому из них паять?
По фото плохо видно, но вроде бы это один и тот же контакт. (можно прозвонить тестером). Так что там все-равно к какому.
Ну или если уж действительно хотите бесплатную помощь, то держите:
Следим за нужным пином. При пропадании импульса на пине запоминаем время и если таймер не заведен, то взводим таймер. По окончании работы таймера, останавливаем его и проверяем разность между последним сохраненным временем и текущим. Если разность меньше времени, на которое взводился таймер, то делаем импульс нужной длительности на нужном пине.
Wavgat пише:Grek пише:Смотрю Петросяны подъехали. В моём понятии "Помогите" Значит, что я нихрена в написании скетча не понимаю. И прошу написать "двух строчный" грубо говоря. Отправляться в платную тему где "двухстрочный код написать"? Извольте. Я прошу людей которые просто смогут написать простой скетч. Это же не скетч для запуска межорбитальных станций.
Любая помощь должна оплачиваться. Две строчки кода стоят как минимум стакан кофе. А Петросян здесь Вы, так как крутите барабан и ждете подарков.
Ну вообще-то барабан крутят в студии Якубовича на поле чудес. Петросян тут не причём.
Ты уверен, что любая помощь должна оплачиваться? Пример. Прихожу на стоянку, у человека не заводиться машина(аккум. сел), а он с женой и сыном. Ему срочно надо ехать, но физически он не может это сделать. Тут я это вижу подхожу и помогаю ему завести машину с талкоча. Мне как, надо было взять денег сначало, а потом помочь, или по совести поступь?
Да, извини, с Петросяном промахнулся (что-то с памятью моей...)
А пример не верен, так как автомибилист оказывая помощь другому автомобилисту расчитывает на то, что и ему помогут такие же в сложной ситуации.
По аналогии: программист может расчитывать на помощь других программистов. А вы ни единой строчки кода не написали, а просите помощи. Мы же реально видим, что от Вас аналогичной помощи не будет. Какой смысл помогать?
И еще вопрос. Кто-нибудь может объяснить мне, почему на всех картинках Arduino Pro Mini 6 пин подписан как PWM, если он может работать только как аналоговый вход? Может я чего-то не знаю?
- не видя вашей программы можно только гадать, что и как вы выводите в порт и должно ли оно туда выводиться.
- какой аддон вы установили.
( WAVGAT NANO )- проверьте МК там действительно LGT8F328P
Вы наверно невнимательно прочитали первый пост. У меня WavGat Pro Mini. Подкупила низкая цена. Тот факт, что это не совсем аналог, я осознал уже после того, как заказал и оплатил, когда начал изучать литературу по нему. Плата пришла и сегодня я все-таки закончил писать скетч под нее (нашел все ошибки). Просто из-за отсутствия монитора, отлаживать пришлось на ощупь.
Вам скинуть весь мой скетч? Или достаточно того, что я использовал стандартные конструкции:
...
void setup() {
Serial.begin(9600); // Так же пробовал 115200
// while (!Serial) {
// ; // ожидаем подключения последовательного порта. Нужно только для Leonardo
// }
Serial.print("void setup - start");
Serial.println();
...
Serial.print("void setup - start");
Serial.println();
}
void loop() {
Serial.print("void loop - start");
Serial.println();
...
}
Закоментированные строки - пробовал и с ними и без них.
Регистры в коде не использовал.
Из библиотек только EEPROM (но пробовал и без нее).
На индикатор вывожу через функцию shiftOut(LED_DATA, LED_CLCK, MSBFIRST, Cur_digit1);
Аддон устанавливал из обзора (тот, который от продавца). (Правда читал я его давно, но сейчас еще раз перечитал).
http://arduino.ru/forum/apparatnye-vopr … -lgt8f328p
На сегодня лучший обзор который я встречал .
Процессор стоит AVGA328P в LQFP32 корпусе (по информации из интернета это и есть LGT8F328P)
Второй аддон как-то не заметил после первого прочтения. Скачал, поставил - добавились платки в Arduino IDE. А какой аддон использовали Вы?
В моем варианте на плате нет микросхемы usb-usart и светодиодов на линиях RX и TX. Нужно ли мне переназначать ножки ком-порта?
Но в любом случае проверить смогу только во ВТ, так как платку оставил на работе.
renoshnik пише:" ПОМОГИТЕ " - подразумевает, что вы хоть что-то сделали сами.
Показывайте скетч который вы написали излагайте проблему, что не получается.
Или пишите в ветку платных заказов...Смотрю Петросяны подъехали. В моём понятии "Помогите" Значит, что я нихрена в написании скетча не понимаю. И прошу написать "двух строчный" грубо говоря. Отправляться в платную тему где "двухстрочный код написать"? Извольте. Я прошу людей которые просто смогут написать простой скетч. Это же не скетч для запуска межорбитальных станций.
Любая помощь должна оплачиваться. Две строчки кода стоят как минимум стакан кофе. А Петросян здесь Вы, так как крутите барабан и ждете подарков.
LED-лента может и больше. Зависит от ленты и от ее длины
С 6-ым (и 7-ым) пином частично прояснилось. Нашел, что они работают только как аналоговые входы. Просто, когда я выбирал куда подключаться, я набрал в поисковике "arduino pro mini pinout" и выбрал пины PWM (надо же было именно на 6-ой попасть!). Однако в ходе экспериментов выяснилось следующее: если в void setup задать скорость СОМ-порта, то 6 пин может работать и на выход, но с инвертированными значениями (по крайней мере на WavGat Pro mini, как с этим у Arduino Pro mini - не знаю, не на чем проверить).
А вот с выводом в консоль пока не понял, почему тишина в эфире.
... поставить в ряд 6 RFID меток , при замыкании всех шести дать сигнал релюшке...
это выходит SDA провод на RFID метке?
RFID метка - это то, что прикладывается к считывателю, а уже считыватель подключается к микроконтроллеру. И метки не замыкают, а считываются. Замыкают магниты контакты в герконе, но это уже совсем другая кухня... Так, чтоб Вам понятней было - это все-равно, что сказать "напряжение бегает по проводам".
Даташит я почитаю, но не понимаю, как это мне поможет с решением второй проблемы?
По поводу вывода в консоль может я и найду там ответ, но что делать с неадекватной реакцией на стандартные конструкции платформы? Я так понимаю, что нужно что-то исправлять в файлах драйвера на WAVGAT в папке Arduino? Но там много файлов и я в них практически ничего не понимаю.
Здравствуйте. Помогите с микроконтроллером WavGat Pro Mini, который является аналогом Arduino Pro Mini, но имеет другой процессор.
Купил я себе это чудо для экспериментов, а также USB-UART FT232RL. Установил драйвера на WavGat (в среде Arduino выбираю "плата > WavGat Pro Mini"). Подключил 4-х разрядный 7-ми сегментный индикатор (через 74HC164) и пару кнопок, набросал тестовый скетч, залил и начались танцы с бубнами.
Во-первых я не вижу ничего в мониторе порта. RX TX менять местами пробовал - результат тот же. Замыкал RX и TX - эхо есть. Пробовал разные скорости.
Serial.begin(115200); // Скорость работы COM-порта
Serial.print("void setup - start");
Serial.println();
Во-вторых для управления разрядами я решил использовать 6,9,10 и 11 пины, так как у Arduino Pro Mini это PWM-пины. Хотел регулировать яркость. 9,10 и 11 пины нормально реагируют как на digitalWrite(LOW/HIGH) так и на analogWrite(LOW/HIGH/0..255). А 6-ой пин ведет себя как-то странно:
на digitalWrite(LOW/HIGH) и на analogWrite(0/255) устанавливается ВЫСОКИЙ уровень на порту;
на analogWrite(LOW) - устанавливается ВЫСОКИЙ уровень на порту;
на analogWrite(HIGH) - устанавливается НИЗКИЙ уровень на порту;
на analogWrite(128) - устанавливается среднее значение уровня на порту (свечение индикатора более тусклое);
Можно ли как-то исправить/побороть эти проблемы?
Сторінки 1