|
Результаты опроса: Писать ли про развитие проекта, или пофиг, есть свой и работает. | |||
Пиши дальше | 210 | 96.33% | |
Не пиши, лучше займись чем нибудь (другим) полезным. | 8 | 3.67% | |
Голосовавшие: 218. Вы ещё не голосовали в этом опросе |
|
Опции темы | Поиск в этой теме |
24.09.2015, 00:45 | #61 |
Гуру
Регистрация: 16.04.2014
Возраст: 40
Город: Gdynia
Регион: другой - для добавления сообщить ab
Сообщений: 2,548
|
покритикуйте новый скетч, еще не заливал в машину.
Тут СПОЙЛЕРЫ есть на форуме?! // ver23.09.2249 //D8 pin - (PLANSHpin pin)(выход 5в логический) (выключает питание планшета!(R13-R14)) //D7 pin - самозапитка (AKB pin) (выход 5в логический) /*ноги ардуины*/ int PLANSHpin = 8; //управление на выключатель питания БАТАРЕИ планшета через управляющую ногу ss\sd1 //0 = нет питания; 1 = есть питание ( БАТАРЕИ планшета) int AKBpin = 7; //управление транзюком самозапитки блока питания VT2 //1 = есть самозапитка; 0 = нет самозапитки int OTGpin = 10; //управление транзюком OTG VT3 //1 = есть масса на OTG; 0 = нет массы на OTG int SLEEPpin = 11; //управление транзюком сна VT4 (на датчик холла)) //1 = потух экран(есть масса на пине сна); 0 = штатная работа планшета (нет массы на пине сна) int POGOpin = 9; //управление транзюком питания +5V (VT5) на пого пин, чтоб планшет думал, что идет зарядка //1 = нет 5V на POGO; 0 = есть 5V на POGO int REMpin = 12; // //управление транзюком VT7 и через него VT6 = выход сигнала REM (+12v) НЕ АКТИВИРОВАЛ В СКЕТЧЕ, на плате распаяно. //0 = нет 12В на выходе REM; 1 = есть 12В на выходе REM /*логические переменные, используемые в коде*/ int flagACC = 0; //признак включенного зажигания int flagAKB = 0; // признак заряженной батареи int flagHALL = 0; //флаг отработки морга экрана при холодном старте( flagHALL = 1 экран можно включать и выключать, датчик холла на планшете инициализировался) /*счётчики времени*/ unsigned long eventTime = 0; unsigned long pauseTimeACC = 0; unsigned long pauseTimeAKB = 0; unsigned long pauseTimeHALL = 120000; // время паузы перед морганием экрана (для датчика холла)(равен времени загрузки планшета плюс секунд 10-20)= 2мин void setup() { // put your setup code here, to run once: pinMode(PLANSHpin, OUTPUT); pinMode(AKBpin, OUTPUT); pinMode(OTGpin, OUTPUT); pinMode(SLEEPpin, OUTPUT); pinMode(POGOpin, OUTPUT); pinMode(13, OUTPUT); //светодиодик на плате ардуины analogReference(INTERNAL); //перевод напряжения делителя на внутреннее значение 1,1В ( для повышения точности замера Uacc и Uakb) // Serial.begin(1200); } void loop() { int Uacc = analogRead (A7); //Читаем напругу с делителя R10-R11 int Uakb = analogRead (A6); //Читаем напругу с делителя R2-R3 float U_acc_real = Uacc * (1.1 / 1023.0*17.2); //Вычисляем реальное напряжение +ACC на входе делителя (A7) 17.2=поправка на погрешность делителя. обкатывать только на реальном питании от 12В! при питании от ЮСБ 5,0В плавают float U_akb_real = Uakb * (1.1 / 1023.0*17.1); //Вычисляем реальное напряжение +30 на входе делителя (A6) //Serial.print("U_akb_real = ");Serial.println(U_akb_real); //Serial.print("U_acc_real = ");Serial.println(U_acc_real); // кусок кода ниже нужен для того, чтобы при включении и сразу выключении ACC при полностью выключенном планшете(холодный старт) экран мог тухнуть по сигналу датчика холла. if (millis()>pauseTimeHALL && flagHALL == 0) //проверка отсчета при холодном старте {flagHALL = 1;} // if (flagHALL == 0 && flagACC == 1){flagHALL = 1;} // надо ли этот кусок кода тут?! Я ХЗ, пусть будет. но скорее не надо. // блок ACC if (U_acc_real>= 12 && flagACC == 0 && flagAKB == 1) //проверка напруги АСС и АКБ при флаге ACC = 0 { flagACC = 1; //ВКлючили зажигание pauseTimeACC = millis(); //сразу после включения зажигания даём минус на Y-OTG и плюс +5V на POGO или USB. digitalWrite(OTGpin, 1); //включаем минус на Y-OTG (8 pin PW1) (включается хаб? и звуковая карта) digitalWrite(POGOpin, 0); //включаем +5V (3 pin PW1 = POGO) нужно для распознавания планшетом признака зарядки. ( можно подавать на +5В USB кабеля (для тимуровской прошивки или если не используется датчик холла) } if (millis()-pauseTimeACC>=2000 && flagACC == 1) // пауза 2c после включения ACC и потом делать следующ(пока включено ACC): { digitalWrite(SLEEPpin, 0); //вЫключаем минус на упр SLEEP (7 pin PW1) = включаем экран // REM УПРАВЛЕНИЕ РАСКОММЕНТИТЬ и протестировать //digitalWrite(REMpin, 1); // даем + на управление VT7, тот дает минус на управление VT6, а VT6 выдаёт +12V на выход (PW1 - 13 pin)) pauseTimeACC = 0; } if (U_acc_real< 12 && flagACC == 1) { flagACC = 0; //Выключили зажигание pauseTimeACC = millis(); pauseTimeAKB = millis(); // сброс времени для отсчета отключения самозапитки // REM УПРАВЛЕНИЕ РАСКОММЕНТИТЬ и протестировать //digitalWrite(REMpin, 0); // даем - на управление VT7, тот убирает за счет подтяжки R24 минус на управление VT6, а VT6 убирает +12V на выход (PW1 - 13 pin)) } if (millis()-pauseTimeACC>=4000 && flagACC == 0) //пауза 4c после вЫключения ACC и потом делать следующ: { digitalWrite(OTGpin, 0); //вЫключаем минус на Y-OTG (8 pin PW1) digitalWrite(POGOpin, 1); //вЫключаем +5V (3 pin PW1 = POGO) pauseTimeACC = 0; if (flagHALL==1){digitalWrite(SLEEPpin, 1);} else {digitalWrite(SLEEPpin, 0);} //включаем минус на SLEEP (7 pin PW1)при этом тухнет экран (если прошло 2 минуты с момента включения ардуины) } // .. блок АКБ if (U_akb_real>=12 && flagAKB == 0) //проверка +30 и флага акб { digitalWrite(AKBpin, 1); // включаем самозапитку digitalWrite(PLANSHpin, 1); //включаем питание на батарею планшета (ss\sd1) flagAKB = 1; } if (U_akb_real<12 && flagAKB == 1) // ситуация, когда сел при работе ардуины аккумулятор { flagAKB = 0; } if (millis()-pauseTimeAKB>=6000 && flagAKB == 0) // если севший аакумулятор { // пауза 6c digitalWrite(PLANSHpin, 0); //вЫключаем питание на батарею планшета (ss\sd1) digitalWrite(AKBpin, 0); //выключаем AKBpin, при этом пропадает питание через полевик на KIW, система ПОЛНОСТЬЮ обесточивается delay (3000); // задержка для аппаратного выключения } if (flagAKB == 1 && flagACC == 0) //ситуация, когда норм акб и давно выключили зажигание (ACC) { if (millis()-pauseTimeAKB>=10800000 && flagAKB == 1) // если давно выключили ACC { // пауза (3600000 - 60мин) (60000 - 1 мин)(10800000=3ч) digitalWrite(AKBpin, 0); //выключаем AKBpin, при этом пропадает питание через полевик на KIW, система ПОЛНОСТЬЮ обесточивается digitalWrite(PLANSHpin, 0); //вЫключаем питание на батарею планшета (ss\sd1) delay (3000); // задержка для аппаратного выключения } } if (flagAKB ==0 ){digitalWrite(13, 0);} else {digitalWrite(13, 1);}; // индикация напруги батареи на ардуинине. }
__________________
------------------------ Новая версия блока питания (BP5mini) для подключения всех планшетов (плата, прошивка, инструкции) ------------------------ Неспешно расписываемый проект. ------------------------ Регулировка звука аудиопроцессором. TDA7442 + ардуино. |
24.09.2015, 16:41 | #62 |
Гуру
Регистрация: 16.04.2014
Возраст: 40
Город: Gdynia
Регион: другой - для добавления сообщить ab
Сообщений: 2,548
|
залил этот скетч, понравилось. Стало стабильнее отрабатывать тушение экрана по датчику холла, если вставить и сразу вынять ключ.
УТОЧНЕНИЕ 20,10,2015 Наигрался я с ардуиной, и решил попробовать залить HEX напрямую. Сразу скажу - не стало загрузчика, пропала задержка 1,5 сек перед включением проца. Мне понравилось, плата блока питания отзывается сразу, как пришла напруга, практически мгновенно. Пишу тут, чтоб самому не забыть )) для начала превращаем свободную ардуину ( у меня MEGA 2560) в программатор. Для этого запускаем среду разработки ардуины, в меню ФАЙЛ -> образцы-> ArduinoISP. ИНСТРУМЕНТЫ- >программатор->AVRISP mkII. Выбрать порт, плату и процессор ( у меня MEGA 2560). Заливаем скетч в мегу. Теперь она будет у нас ISP программатором. Отключаем MEGу. В настройках выбираем порт, плату и процессор нашего блока питания ( NANO. 328). Открываем наш скетч от блока питания (NANO_23.09_serial_control.ino). Железо подключается так: В юсб компа втыкаем нашу мегу (которая щас isp-программатор). К меге подключаем НАНУ (по схеме в скетче AVRISP mkII). Если всё правильно, на нане включится светодиод питания и станет исполнятся залитая программа. В среде разработке ардуины ФАЙЛ -> загрузить с помощью прграмматора. дальше - больше. Наигрался я с ардуиной, и решил попробовать залить HEX напрямую. Сразу скажу - не стало загрузчика, пропала задержка 1,5 сек перед включением проца. Мне понравилось, плата блока питания отзывается сразу, как пришла напруга, практически мгновенно. Пишу тут, чтоб самому не забыть )) для начала превращаем свободную ардуину ( у меня MEGA 2560) в программатор. Для этого запускаем среду разработки ардуины, в меню ФАЙЛ -> образцы-> ArduinoISP. ИНСТРУМЕНТЫ->программатор->AVRISP mkII. Выбрать порт, плату и процессор ( у меня MEGA 2560). Заливаем скетч в мегу. Теперь она будет у нас ISP программатором. Отключаем MEGу. В настройках выбираем порт, плату и процессор нашего блока питания ( NANO. 328). Открываем наш скетч от блока питания (NANO_23.09_serial_control.ino). Заливаем в НАНу. (саму нану можно не подключать, но желательно проверить работоспособность БП на машине). (В настройках среды ардуины поставить ВСЕ галки, кроме внешнего редактора). внизу пошла техническая инфа. нас интересует последняя белая строчка D:\777\soft\arduino\hardware\tools\avr/bin/avrdude -CD:\777\soft\arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cstk500v2 -Pusb -Uflash:w:c:\Temp\build4913313151507408812.tmp/NANO_23.09_serial_control.cpp.hex:i Открываем папку \Temp\build4913313151507408812.tmp (поиском можно) и видим там КУЧУ файлов. Я все утянул на всякий, но нам нужен NANO_23.09_serial_control.cpp.hex Итак, мы заимели HEX файл прошивки. Теперь задача запихнуть его в процессор (мегу 328p) без загрузчика. Стандартной средой ардуины у меня не получилось ( или плохо старался), эта кака пыталась прошить мегу. Поэтому была использована программка SinaProg версии 2,1. (программер AVRISP, порт, 19200) devise ATmega328P. Железо подключается так: В юсб компа втыкаем нашу мегу (которая щас isp-программатор). К меге подключаем НАНУ (по схеме в скетче AVRISP mkII). Если всё правильно, на нане включится светодиод питания и станет исполнятся залитая программа. Открываем вверху HEX файл, указываем путь к тому, который мы добыли (NANO_23.09_serial_control.cpp.hex). И во вкладке Flash жамкаем Progam. ждём пока зальётся, и жмём verify. Отключаем. Остается проверить результат на машине. Arduino Uno (программатор) 5V → Vcc GND → GND D11 → MOSI D12 → MISO D13 → SCK D10 → Reset Arduino Nano (ICSP разъём) Pin1 (MISO) ← D12 Pin2 (Vcc) ← 5V Pin3 (SCK) ← D13 Pin4 (MOSI) ← D11 Pin5 (Reset) ← D10 Pin6 (GND) ← GND
__________________
------------------------ Новая версия блока питания (BP5mini) для подключения всех планшетов (плата, прошивка, инструкции) ------------------------ Неспешно расписываемый проект. ------------------------ Регулировка звука аудиопроцессором. TDA7442 + ардуино. Последний раз редактировалось admin; 15.10.2018 в 23:53. |
26.09.2015, 17:33 | #63 |
Старший Пользователь
Регистрация: 30.07.2011
Город: Новосибирск
Регион: 54
Машина: Honda Civic Ferio
Сообщений: 361
|
ну ты блин даешь, целую ардуину на это извел... а есть ведь просто кристалы типа аттини... на худой конец, ардуино про мини...
|
26.09.2015, 17:41 | #64 |
Гуру
Регистрация: 21.01.2010
Город: Новосибирск
Регион: 54
Сообщений: 2,580
|
|
26.09.2015, 18:12 | #65 |
Гуру
Регистрация: 16.04.2014
Возраст: 40
Город: Gdynia
Регион: другой - для добавления сообщить ab
Сообщений: 2,548
|
1 лёгкость вхождения в процессоры. ( а я их уже основательно забыл)
2 повторяемость - легко повторить проект 3 лёгкость перепрограммирования -всунул юсб, поменял значения, тайминги, залил. Настроить поведение можно ЛЮБОЕ. 4 цена - стоимость ардуины на Китае 1,5 бакса за НАНУ (а это разъём мини юсб, усб-уарт, кварц, атмега328p + плата). Стоимость той же атмеги 8 почти бакс. Андуина тупо дешевле. 5 расширяемость- у меня ещё куча ног прикрутить дополнительный функционал. (Типа измерения питания 5 в на планшет) 6 уже почти подошёл к 4 версии блока питания на спец- драйверах с контролем тока, температуры и прочими плюшками. Там уже и буду лепить на чистой атмеге.
__________________
------------------------ Новая версия блока питания (BP5mini) для подключения всех планшетов (плата, прошивка, инструкции) ------------------------ Неспешно расписываемый проект. ------------------------ Регулировка звука аудиопроцессором. TDA7442 + ардуино. |
26.09.2015, 20:01 | #66 |
Старший Пользователь
Регистрация: 30.07.2011
Город: Новосибирск
Регион: 54
Машина: Honda Civic Ferio
Сообщений: 361
|
только нафига оно нада? контроль с планшета и прочее? снимать ставить...
возможно только из-за самообразования, реально нада так - настроил 1 раз, поставил - все пашет, и не лезешь туда больше. для задач БП достаточно тиньки 45ой =) |
26.09.2015, 21:53 | #67 | |
Гуру
Регистрация: 16.04.2014
Возраст: 40
Город: Gdynia
Регион: другой - для добавления сообщить ab
Сообщений: 2,548
|
просто мысли вслух и самоанализ
Цитата:
На момент начала проекта я не видел ни одного проекта без рэле ( у нас какой век на дворе?) самообразование однозначно никто не отменял, а то так у меня блок питания прекрасно и долго работал и без ардуины-проца(аппаратно), а вся эта конструкция пришла на замену обычного зарядного 5в-2А в прикуриватель на ПОГО пины. реально так - я сел в машину, вставил ключ - система запустилась из сна (либо загрузилась). Заглушил - система пошла спать( около часа сейчас). Через час самоотрубилась. Если батарея ниже 12 вольт - самоотрубилась. Если не лезть в дебри и не искать идеала - оно просто работает.Уже дооолго работает. ANRU вон вообще хочет, чтоб БП запускался при снятии машины с сигналки ( и это уже возможно у меня, только у провод от центрального замка протянуть). Каждому своё. Вот тут и нужна ардуина - не каждый потянет атмел студио сходу. Как мне править логику работы под себя прикажете? А если только HEX файл выложен? Ардуину воткнул в усб, поравил тайминги под себя (или вообще программу переписал), кнопку нажал - скетч залил -> пользуйся. Проект задумывался как альтернатива блокам на рэле. ( а рэле на проц напрямую цеплять нельзя, там токи попалить его могут, не говоря про обратное напряжение ( скачёк до 140 вольт запросто, надо ставить диод параллельно обмотке). Поэтому надо ставить транзистор и диод для рэле, или просто диод для слаботочного. Тогда смысл в рэле, если мы всё равно пихаем транзистор? Я не увидел ни одного(!) грамотного решения блока питания. Начиная от схемы и заканчивая компоновкой деталей. Да что говорить, даже защиты от короткого замыкания или перенапряжения я не видел. На робкое упоминание, что так нельзя - авторитетно заявляется, что у всех так работает. Это в машине то . Я понимаю, что для многих это игрушка в машине, но она никак не должна мешать машине работать. Мой БП далёк от идеала, многие идеи я взял с этого форума, многие идеи по практическому построению нагло спёр из автомобильного хэндсфрии ( прямо с деталями и взял), многое - авторские наработки. Сначала даже писать не хотел, а потом... решил поделиться с форумом, который мне много дал. Хотя сейчас энтузиазм тратить время на форум упал почти полностью.
__________________
------------------------ Новая версия блока питания (BP5mini) для подключения всех планшетов (плата, прошивка, инструкции) ------------------------ Неспешно расписываемый проект. ------------------------ Регулировка звука аудиопроцессором. TDA7442 + ардуино. |
|
27.09.2015, 13:27 | #68 |
Старший Пользователь
Регистрация: 25.04.2012
Возраст: 49
Город: Оленегорск
Регион: 51
Машина: Pontiac Vibe GT 2.4 2009
Сообщений: 105
|
|
27.09.2015, 16:23 | #69 |
Гуру
Регистрация: 16.04.2014
Возраст: 40
Город: Gdynia
Регион: другой - для добавления сообщить ab
Сообщений: 2,548
|
Опять поискал, видимо плохо, хотя ancc и молоток, схемы блока питания на планшет-андроид у него я не нашел. Может подскажете?
__________________
------------------------ Новая версия блока питания (BP5mini) для подключения всех планшетов (плата, прошивка, инструкции) ------------------------ Неспешно расписываемый проект. ------------------------ Регулировка звука аудиопроцессором. TDA7442 + ардуино. |
03.10.2015, 17:59 | #70 |
Гуру
Регистрация: 03.05.2011
Возраст: 73
Город: Верещагино
Регион: 59
Машина: Toyota-Echo
Сообщений: 2,045
|
А если заглушил и ушел в магазин посмотреть железки, а жена в это время смотрит видеоклипы...
ну что-бы не скучала меня дожидаясь ?
__________________
DN2800MT, DDR3-4Gb, SSD -30 Gb, Lilliput FA1000 - по HDMI, Win-8 . |
Метки |
arduino, nexus7, блок питания, блок питания планшета |
Здесь присутствуют: 22 (пользователей: 0 , гостей: 22) | |
|
|