27.07.2017, 16:22 | #771 |
Новый Пользователь
Регистрация: 25.02.2015
Регион: Беларусь
Машина: VW Golf IV
Сообщений: 15
|
добрый день!
помогите написать скетч хочется оставить управление магнитолой и дополнительно ТОЛЬКО переключать треки на планшете (т.е. только 2-е кнопки TR_NEXT, TR_PREW) МСР 4131 нет в городе, купил МСР4231 (он 2-х канальный) Nexus 7 12г. прошивка Тимура (зарядка+отг) Arduino Leonardo MCP4231 - 2-х канальный цифровой потенциометр (другой не нашел) Sketch led - скетч который у меня работает sketch potten - скетч не работает (наверно потому что там нет "byte addressRedLED = B00010000; " выбор канала наверно) https://mysku.ru/blog/ebay/35610.html sketch nexus - работает (без подключенной магнитолы) уважаемого lti1 в программировании вообще не шарю, помогите пожалуйста! схема подключения https://prnt.sc/g0y2a9 |
29.07.2017, 23:59 | #772 |
Новый Пользователь
Регистрация: 25.02.2015
Регион: Беларусь
Машина: VW Golf IV
Сообщений: 15
|
вот что у меня получилось (может и коряво, но главное работает)
Код:
#include <SPI.h> // библиотека SPI должна быть в стандартном софте, ну или её можно скачать. const byte POT = B00010000; //выбор канала потенциометра // Коды имеющихся на руле кнопок const int next=6; const int previous=54; const int vol_up=140; int csPin=10; // CS на цифровом потенциометре int wheelPin=A5; // аналоговый пин, на котором мы считываем сопротивление нажатой на руле кнопки int i=0; int prevButton=0; int r; //keyboard unsigned long flag = 0; //keyboard void setup() { pinMode(csPin, OUTPUT); delay(50); SPI.begin(); delay(50); SPI.transfer(POT); // команда SPI.transfer(0); // значение pinMode(wheelPin, INPUT); delay(100); Keyboard.begin(); //keyboard } int getR() { // Эта функция читает сопротивление с кнопок на руле и возвращает код нажатой кнопки, либо 0 // читаем сопротивление (на самом деле напряжение, конечно) на аналоговом пине int r=analogRead(wheelPin); //if(r>=release_button - button_release_range && r<=release_button + button_release_range && flag == 0) //keyboard if (r>=2 && r<=10) return(next); if (r>=50 && r<=60) return(previous); if (r>=120 && r<=156) return(vol_up); } // ОСНОВНОЙ ЦИКЛ void loop() { int currButton=getR(); // заносим в переменную currButton код нажатой кнопки if (currButton!=prevButton) { // если значение поменялось с прошлого раза delay(10); currButton=getR(); // ждем 10ms и читаем еще раз, чтобы исключить "дребезг" кнопки if (currButton!=prevButton) { // если код кнопки точно поменялся с прошлого раза //Serial.println(currButton); prevButton=currButton; // сохраняем новое значение в переменную prevButton // Выставляем сопротивление на потенциометре, тем самым посылаем команду на магнитолу. // Значения сопротивлений даны для Pioneer, для магнитол других марок числа будут другие. SPI.transfer(0); switch(currButton) { case next: digitalWrite(csPin, LOW); SPI.transfer(POT); SPI.transfer(21); digitalWrite(csPin, HIGH); Remote.next(); flag = 0; delay(10); Remote.clear(); break; // 16k case previous: digitalWrite(csPin, LOW); SPI.transfer(POT); SPI.transfer(50); digitalWrite(csPin, HIGH); Remote.previous(); flag = 0; delay(10); Remote.clear(); break; // 24k case vol_up: digitalWrite(csPin, LOW); SPI.transfer(POT); SPI.transfer(14); digitalWrite(csPin, HIGH); break; // 11k default: digitalWrite(csPin, LOW); SPI.transfer(POT); SPI.transfer(0); digitalWrite(csPin, HIGH); break; } } } delay(5); } Последний раз редактировалось Chois; 10.09.2017 в 14:47. |
09.09.2017, 01:25 | #773 | |
Старший Пользователь
Регистрация: 14.11.2009
Город: г. Жуковский
Регион: 50, 90, 150
Сообщений: 271
|
Цитата:
У меня возникла проблемма, может кто сталкивался. Скетч этот, ардуина про микро. Всё прекрасно шьётся и работает под Андроидом, Виндой, но вот под WIN 10 странный трабл - если ардуина сидит в USB порту (не важно, ХАБ или на матери), то после перезагрузки или включения компа она как ХИД устройство не реагирует на нажатие клавиш, надо переткнуть, тогда всё норм. Причём СОМ порт виден без всяких траблов. Повторю, это только под десяткой, под семёркой или андроидом всё норм. Что это может быть? Как бороться?- электрически перезагружать USB не очень кошерно. Может быть внедрить функцию "reset" в данный скетч? Например при длительном нажатии AltTab сделать перзагрузку ардуины? Как это прописать в скетче? |
|
09.09.2017, 11:07 | #774 | |
Старший Пользователь
Регистрация: 17.01.2010
Возраст: 48
Город: Самара
Регион: 63, 163
Машина: Skoda Octavia A5 FL && Skoda Octavia Tour && ̶F̶F̶3̶
Сообщений: 457
|
Цитата:
После выключения компа USB порт обесточивается? Можно попробовать добавить задержку после подачи питания на ардуино, в setup(). PHP код:
|
|
09.09.2017, 13:45 | #775 | |
Старший Пользователь
Регистрация: 14.11.2009
Город: г. Жуковский
Регион: 50, 90, 150
Сообщений: 271
|
Цитата:
Загрузка с нуля - не реагирует на нажатие как ХИД. Передёрнул (в хорошем смысле ) через 30 секунд начинает реагировать. На двух машинах так -на одной WIN10 64 на другой WIN10 32, совершенно разные аппараты, так что дело не в железе. |
|
09.09.2017, 20:08 | #776 | |
Старший Пользователь
Регистрация: 17.01.2010
Возраст: 48
Город: Самара
Регион: 63, 163
Машина: Skoda Octavia A5 FL && Skoda Octavia Tour && ̶F̶F̶3̶
Сообщений: 457
|
Цитата:
Тогда пробуйте первый способ описанный здесь, второй, программный способ не заработал у меня на pro micro. |
|
10.09.2017, 17:50 | #777 | |
Старший Пользователь
Регистрация: 14.11.2009
Город: г. Жуковский
Регион: 50, 90, 150
Сообщений: 271
|
Цитата:
А как скетч поправить, чтобы при длительном нажатии кнопки, эмулирующем AltTab вызвать RESET ардуины? |
|
10.09.2017, 18:40 | #778 |
Гуру
Регистрация: 16.04.2014
Возраст: 40
Город: Gdynia
Регион: другой - для добавления сообщить ab
Сообщений: 2,548
|
а если ватчдогом попробовать воспользоваться? Выставить ватчдог на 250-500 мс, сообытие - делай(1000) - ресет. Только стандартный загрузчик не поддерживает его вроде.
__________________
------------------------ Новая версия блока питания (BP5mini) для подключения всех планшетов (плата, прошивка, инструкции) ------------------------ Неспешно расписываемый проект. ------------------------ Регулировка звука аудиопроцессором. TDA7442 + ардуино. |
10.09.2017, 20:20 | #779 | |
Старший Пользователь
Регистрация: 14.11.2009
Город: г. Жуковский
Регион: 50, 90, 150
Сообщений: 271
|
Цитата:
Мониторинг СОМ порта тоже работает всегда и без проблем. Поэтому на данный момент мне проще кнопкой на руле (длительное нажатие) перезагрузить ардуину. В написании скетчей не силён, вот и стуканул о помощи. |
|
10.09.2017, 20:32 | #780 | |
Гуру
Регистрация: 16.04.2014
Возраст: 40
Город: Gdynia
Регион: другой - для добавления сообщить ab
Сообщений: 2,548
|
Цитата:
https://geektimes.ru/post/255800/
__________________
------------------------ Новая версия блока питания (BP5mini) для подключения всех планшетов (плата, прошивка, инструкции) ------------------------ Неспешно расписываемый проект. ------------------------ Регулировка звука аудиопроцессором. TDA7442 + ардуино. |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|