В продолжение темы, как можно подключать всякое к BlockDuino без паяльника.
Попался мне в руки сломанный DVD плеер и оттуда, не долго раздумывая, была выковыряна платка с LED экранчиком, тремя кнопками и IR (ненужный бонус). На борту обнаружена микросхема TM1628.
Запустив пример с библиотеки TM1638 получил какой-то результат, какой-то - потому как зажглись кое-какие светодиоды, но все это нечитаемо. Но по крайней мере, проверил работоспособность модуля.
Для дальнейшей проверки набросал простенький код:
Но надеюсь, на этом не остановлюсь, в планах написать библиотеку конкретно под этот модуль, так как на просторах нашей страны остались бесхозными тысячи китайских DVD плееров с очень полезным девайсом на борту. ;)
Попался мне в руки сломанный DVD плеер и оттуда, не долго раздумывая, была выковыряна платка с LED экранчиком, тремя кнопками и IR (ненужный бонус). На борту обнаружена микросхема TM1628.
В и-нете ни толкового даташита, ни реализованных примеров я не нашел, но зато встретилась библиотека его старшего брата: TM1638.
От платы идут шесть проводов:
- +5V
- IR
- VSTB
- VSCK
- VSDA
- GND
Так как на шлейфе висит разъем "мама", я взял пять стандартных проводов для прототипирования "папа-папа" и подключил к BlockDuino.
- VSTB (strob) - в D7;
- VSCK (clock) - в D8;
- VSDA (data) - в D9;
- Ну и питание соответственно;
Запустив пример с библиотеки TM1638 получил какой-то результат, какой-то - потому как зажглись кое-какие светодиоды, но все это нечитаемо. Но по крайней мере, проверил работоспособность модуля.
Для дальнейшей проверки набросал простенький код:
// Testing sketch for DVD module with TM1628 IC // Written by Vasyl Yudin, public domain // www.blockduino.org const int dataPin = 9; // VDIO const int clockPin = 8; // VCLK const int strobePin = 7; // VSTR const int intensity = 2; // яркость 0-7 unsigned char displ[14]={0x08,0x00,0x80,0x00,0xb5,0x00,0xaf,0x00,0xbd,0x00,0x01,0x00,0xb1,0x00};// b_duino unsigned char s_addr[8] ={0x03,0x0b,0x0d,0x07,0x05,0x09,0x0d,0x01}; unsigned char s_byte[8] ={0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01}; void setup() { pinMode(dataPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(strobePin, OUTPUT); digitalWrite(strobePin, HIGH); digitalWrite(clockPin, HIGH); t_sendCommand(0x40); t_sendCommand(0x88 | min(7, intensity)); digitalWrite(strobePin, LOW); t_send(0xC0); for (int i = 0; i < 16; i++) { t_send(0x00); } digitalWrite(strobePin, HIGH); // show on display: b_duino for (int i=0; i<14; i++) { t_sendData(i, displ[i]); delay(200); } delay(3000); } void loop() { for (int i=0;i<8;i++){ t_sendData(s_addr[i], s_byte[i]); delay(125); t_sendData(s_addr[i], 0x00); } } //custom functions void updateLEDs() { for (int i=0; i<14; i++) { t_sendData(i, displ[i]); } } void t_sendCommand(byte cmd) { digitalWrite(strobePin, LOW); t_send(cmd); digitalWrite(strobePin, HIGH); } void t_sendData(byte address, byte data) { t_sendCommand(0x44); digitalWrite(strobePin, LOW); t_send(0xC0 | address); t_send(data); digitalWrite(strobePin, HIGH); } void t_send(byte data) { for (int i = 0; i < 8; i++) { digitalWrite(clockPin, LOW); digitalWrite(dataPin, data & 1 ? HIGH : LOW); data >>= 1; digitalWrite(clockPin, HIGH); } } //зы: Переписал код для самостоятельной работы, без библиотек
Но надеюсь, на этом не остановлюсь, в планах написать библиотеку конкретно под этот модуль, так как на просторах нашей страны остались бесхозными тысячи китайских DVD плееров с очень полезным девайсом на борту. ;)
MERCI BEAUCOUP MON AMI
ОтветитьУдалитьПривет, увидел статью про использования экрана от китайского двд и обрадовался. давно хотел сделать для своего авто матиз евро2 мозги для которого не подошло ничто , что я заказывал с китая( елм327).(особенно меня мучают обороты точнее их повышение и расход газа. Скачал я ваш архив и загрузил на ардуино нано 168 ,на экранчике стоит аналог CS1628 , но сожелению на экранчике какието каляки бегают. пытался разобратся с библиотеками и с кодом но так и ничего непонял :( Пожалуйста помогите разобратся с кодом или с библиотеками, Заранье Спасибо
ОтветитьУдалитьКомментариев не хватает
ОтветитьУдалитьКак по даташиту понять ram память микросхемы? Не понятно
ОтветитьУдалить