Страница 1 из 4

Подскажите схему бортового компьютера на дисплее Nokia 3310

Добавлено: Сб сен 08, 2012 15:36:46
Ромыч
Подскажите схему простого авто БК (температура, обороты,напряжение, топливо). Перерыл много схем, но почти везде индикация идет на 2х строчные дисплеи типа HD44780, что огорчает. Стоят они дорого (у нас в городе пендосские аналоги от 300 руб.), да информации много не улезет. От 3310 дисплей стоит порядка 50-100 рублей да и смотрится получше. Спасибо

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Сб сен 08, 2012 18:44:51
Petr57
Можно попробовать найти исходники и подправить на нужный дисплей, все библиотеки в принципе есть.

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Сб сен 08, 2012 18:50:33
Ромыч
я ведь в МК полный ноль... опять же кого то просить придется

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Сб сен 08, 2012 19:23:29
gfgeuf
Этот потянете?

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Сб сен 08, 2012 19:50:16
Ромыч
gfgeuf писал(а):Этот потянете?
О! то что доктор прописал! Вот только с регистрацией у них беда... То ли статьи пиши, то ли покупай из киты.. эх, но за наводку спасибо!

отпадает нытье) нашел дубль сабжа http://redram.com.ua/sam/top.html

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Вс сен 09, 2012 20:15:44
Ромыч
набросал схемку в протеусе. Что то не показывает ничего. В протеусе работаю первый раз. Гляньте, кому не сложно, в чем косяк?
В архиве библиотеки экрана 1100, схема и проект протеуса

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Вс сен 09, 2012 20:18:05
m.ix
Наверное в место кнопки стоит джойстик :)))
СпойлерИзображение

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Пн сен 10, 2012 05:05:07
Ромыч
Все возможно) автор об этом умолчал))

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Вт сен 11, 2012 19:57:28
mas123
Ромыч писал(а):Перерыл много схем, но почти везде индикация идет на 2х строчные дисплеи типа HD44780, что огорчает...... да информации много не улезет.
Свой первый БК, вернее целый "комплекс", делал именно на HD44780. Достаточно туда влезает информации.
Учитывая, что мой БК был и самим БК и был посредником между магнитолой и плеером :) (для магнитолы БД прикидывался CD-ченджером, а с плеером общался как управлялка)
Ромыч писал(а):От 3310 дисплей стоит порядка 50-100 рублей да и смотрится получше. Спасибо
Мне экран от 3310 не понравился :dont_know: Подсветки нет, к контактам трудно подключиться. И точек маловато :))
Сейчас как раз делаю для себя новый БК-комплекс, но с экраном от 6100. Стоит у нас он 90-10 рублей, зато цветной и с подсветкой. Только проводки припаять сложно.

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Вт сен 11, 2012 20:16:57
mas123
Ромыч писал(а):набросал схемку в протеусе. ....Гляньте, кому не сложно, в чем косяк?
Насчет протеуса не скажу. А вот по схеме есть ошибки.
* Зачем PB4 (MISO) подключил на +5? Не понятен сам смысл такого, и как ты будешь программировать Атмелку?

* Зачем AREF соединен с AVCC? Если хочешь в качестве опоры использовать +5 - это можно в настройках АЦП выставить. А вот как теперь использовать встроенный ИОН?

* PC0 вот так к датчику в баке нельзя. Угробишь Атмелку.. да и всё остальное тоже.
Датчик в баке выдает напряжение от 0 до +12. И эти +12 через резистор пойдут на +5 схемы и прямо на ножку Атмелки.
Ставь делитель, аналогичный замеру напряжения на PC1
Хотя номиналы резисторов у PC1 просто зверские :) Я ставил 10К и 2К на землю.

* Сигнал от подсветки приборки я бы завел тоже на вход АЦП. У меня в машине был регулятор подсветки, и я пропорционально регулировал подсветку индикатора :)

* Ёмкости у кнопок, имхо, не нужны.
Ромыч писал(а):В архиве библиотеки экрана 1100, схема и проект протеуса
Так все же 3310 или 1100? :)

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Вт сен 11, 2012 23:47:26
gfgeuf
просто топикстартер зачал тему с 3310 мну предложило ему схему с 1100 человек просто хочет проверить работоспособность ..
всё дело в индикаторах - я так понимаю , что и 3310 и 1100 у Ромыча в городе продаются без проблем и дешевле Winstar-овских ...

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Ср сен 12, 2012 05:42:35
Ромыч
насчет ошибок схемы косяк не мой... не я автор. у нас, в Уфе, действительно проще купить экран 3310 за 80 или 1110 за 68рублей, чем 16х2 за 350р... а у люмпинов и вообще рабочую нокию рублей за 50-100. Решил пойти немного дальше. Товарищ с схем.нет выложил схемку для 3310, сейчас со своими минимальными познаниями в радиостроительстве пытаюсь прикрутить индикацию температуры двигателя. В программной части разберусь как нибудь (ибо сам программист, си-подобные языки они и в африке си-подобные), а вот с элементарной базой будут проблемы...

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Ср сен 12, 2012 19:44:12
mas123
Ромыч писал(а):Товарищ с схем.нет выложил схемку для 3310, сейчас со своими минимальными познаниями в радиостроительстве пытаюсь прикрутить индикацию температуры двигателя. В программной части разберусь как нибудь (ибо сам программист, си-подобные языки они и в африке си-подобные), а вот с элементарной базой будут проблемы...
Схемка в плане LCD малость плохая опять :))
Для питания LCD надо +3.3. Ставить три диода, и надеяться что они дадут нужный падёж вольтов - как-то рискованно.
И по входным цепям: LCD питается от +3.3 и думает, что и по входу уровень "1" тоже будет не больше +3.3 :) А Атмелка ка-а-а-ак подаст на свой выход почти +5.
Есть шансы, что LCD выживет.
Я облазил кучку форумов и накачал доков - у кого-то LCD по такой схеме жил, у кого-то сразу умер или чуть попозже. Ставь делители.

А с температурой. Можно воткнуться в CAN/LIN шину машинки и попробовать вытянуть температуру.
Можно подцепиться к датчику и мерять его напряжение через АЦП.
А можно поставить свой термометр (и даже не один) и получать готовую температуру. Почитай про DS1820 - всего три провода и у тебя точная температура. А то и всего два провода, а в машине можно и всего один попробовать...

На схеме мой опытный метео-модуль с LCD от 3310. Меряет температуру (DS1820), давление (MPX4115) и влажность (HIH4000). Ну и LCD от 3310, правда без подсветки - я учился с экраном работать, а с подсветкой проблем бы не было.

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Ср сен 12, 2012 20:21:37
Ромыч
mas123 писал(а):
А с температурой. Можно воткнуться в CAN/LIN шину машинки и попробовать вытянуть температуру.
Можно подцепиться к датчику и мерять его напряжение через АЦП.
А можно поставить свой термометр (и даже не один) и получать готовую температуру. Почитай про DS1820 - всего три провода и у тебя точная температура. А то и всего два провода, а в машине можно и всего один попробовать...

На схеме мой опытный метео-модуль с LCD от 3310. Меряет температуру (DS1820), давление (MPX4115) и влажность (HIH4000). Ну и LCD от 3310, правда без подсветки - я учился с экраном работать, а с подсветкой проблем бы не было.
ну экран я все таки планирую в будущем поменять на 1110, сказывается лень (хорошую подсветку мутить лень, был одноразовый опыт работы с этим дисплеем). Машинка у меня ваз, 97 года. CAN/LIN она даже не слышала, ибо карбюратор) поговорив с умными людьми, сделал вывод, что снимать показания со штатного вазовского датчика смысла нет - надо править прошивку под конкретный датчик и писать отдельный алгоритм для вычисления градусов (если делать по уму). Вот и думаю сейчас набодяжить на DS18b20. DS1820 у нас в магазинах нет

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Ср сен 12, 2012 20:43:37
Ромыч
подскажите плиз, кто силен в программировании аврок
пытаюсь снять показания с датчика:
вот так вывожу на экран:

Код: Выделить всё

 w1_search(0xf0,ds18b20_rom_codes);;
       temp_lcd();       
        (VKL_GAB)? (pwm_value=light_level_night):(pwm_value=light_level_day);
        delay_ms(50);

а тут идет считывание и подсчет:

Код: Выделить всё

void temp_lcd(void){
       #asm("wdr")  
          result_temp=ds18b20_temperature(&ds18b20_rom_codes[0][0]);       
          if (result_temp>10000){temp=0x10000-result_temp;flag_minus=1;}
          result_temp>>=3; //обязательно     
          decbin_ds(result_temp);
           LcdDrawFont2(buffer[1],25);
           LcdDrawFont2(buffer[2],38);
           LcdDrawFont2(buffer[3],60); 

}
и не работает. подцепил на АДС2

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Ср сен 12, 2012 20:59:16
mas123
Ромыч писал(а):ну экран я все таки планирую в будущем поменять на 1110, сказывается лень (хорошую подсветку мутить лень, был одноразовый опыт работы с этим дисплеем).
Кстати, а что умеет экран от 1110 и как у него с подключением проводочков?
А то я подсел на экран от 6100, все бы супер: 130х130 точек, цветной, подвсетка в комплекте.
Вот тока плохо что подсветка 6...7 вольт надо, но фигня - собрал на транзюке и дросселе "повышалку".
А вот разъём для подключения... Пришлось покупать хорошие "очки-увеличивалки", но и с ними запинговался паять. :kill:
Ромыч писал(а):Машинка у меня ваз, 97 года. ...сделал вывод, что снимать показания со штатного вазовского датчика смысла нет - надо править прошивку под конкретный датчик и писать отдельный алгоритм для вычисления градусов (если делать по уму).
Ты хочешь температуру с какой точностью выводить-то? :)) А датчики ты меняешь каждый день? :)

Я цеплялся к датчику уровня топлива в баке и "калибровал" его через приборку.
Вместо датчика взял переменный резистор, подавал на приборку от 0 до +12 и смотрел сколько показывает стрелка и какое при это напряжение. Т.е. поймал примерно точки "0", "1/4", "1/2", "3/4" и "полный".
Расход топлива считал по открытию форсунки, а потом сравнивал сколько топлива прошло по расходомеру и на сколько уменьшилось в баке. Данные совпадали с достаточной для меня погрешностью.
Ромыч писал(а):Вот и думаю сейчас набодяжить на DS18b20. DS1820 у нас в магазинах нет
Просто 1820 уже не купить - снята с производства. Все рекомендуют 18S20, типа совместима с 1820 и ты-пы. А для 18B20 нужно код править.

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Ср сен 12, 2012 21:08:03
mas123
Ромыч писал(а):а тут идет считывание и подсчет:

Код: Выделить всё

void temp_lcd(void){
       #asm("wdr")  
          result_temp=ds18b20_temperature(&ds18b20_rom_codes[0][0]);       
          if (result_temp>10000){temp=0x10000-result_temp;flag_minus=1;}
и не работает. подцепил на АДС2
Эм.... в подвале, в дальнем углу смотрел? Если там лежит картошка, то не будет работать :)))
Короче говоря, данных недостаточно, а телепаты в отпуске :)
Как именно не работает? не выводит, не меряет, не так меряет?
Не знаю, что у тебя накручено в функции ds18b20_temperature, но попробую предположить...
А в переменную ds18b20_rom_codes[0][0] ты записал адрес термометра? (который нужно ещё прочитать из самого термометра).
Давай подробности :)

А, ну а резистор то с ноги Data на +5 подцепил? Без него не будет работать.

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Ср сен 12, 2012 21:23:38
Ромыч
Кстати, а что умеет экран от 1110 и как у него с подключением проводочков?
пока не разбирался, но есть библиотеки для протеуса и рабочие примеры)) разобраться
можно при желании, да и разрешение поболее, чем у 3310
Ты хочешь температуру с какой точностью выводить-то? :)) А датчики ты меняешь каждый день? :)
ну до десятых долей точно не надо))
Просто 1820 уже не купить - снята с производства. Все рекомендуют 18S20, типа совместима с 1820 и ты-пы. А для 18B20 нужно код править.
для 18b20 я руководствовался примером из кодвижина

вот кусок из него (почти полный, поудалял все, что касается вывода на экранчик)
Спойлер

Код: Выделить всё

#asm
    .equ __w1_port=0x1b
    .equ __w1_bit=6
#endasm

#asm
    .equ __lcd_port=0x15
#endasm

#include <lcd.h> // LCD driver routines
#include <ds18b20.h>
#include <delay.h>
#include <stdio.h>

char lcd_buffer[33];

/* maximum number of DS18B20 connected to the 1 Wire bus */
#define MAX_DEVICES 8

/* DS18B20 devices ROM code storage area */
unsigned char rom_code[MAX_DEVICES][9];

main()
{
unsigned char i,j,devices;


devices=w1_search(0xf0,rom_code);
sprintf(lcd_buffer,"%u DS18B20\nDevice detected",devices);
lcd_puts(lcd_buffer);
delay_ms(2000);

/* display the ROM codes for each device */
if (devices)
   {
   for (i=0;i<devices;i++)
       {
       sprintf(lcd_buffer,"Device #%u ROM\nCode is:",i+1);
       lcd_clear();
       lcd_puts(lcd_buffer);
       delay_ms(2000);
       lcd_clear();
       for (j=0;j<8;j++)
           {
           sprintf(lcd_buffer,"%02X ",rom_code[i][j]);
           lcd_puts(lcd_buffer);
           if (j==3) lcd_gotoxy(0,1);
           };
       delay_ms(5000);
       };
   }
else
while (1); /* stop here if no devices were found */

/* configure each DS18B20 device for 12 bit temperature
   measurement resolution */
for (i=0;i<devices;)
    if (!ds18b20_init(&rom_code[i++][0],20,30,DS18B20_12BIT_RES))
       {
       sprintf(lcd_buffer,"Init error for\ndevice #%u",i);
       lcd_clear();
       lcd_puts(lcd_buffer);
       while (1); /* stop here if init error */
       };

/* measure and display the temperature(s) */       
while (1)
      {
      j=1;
      for (i=0;i<devices;i++)
          {
          sprintf(lcd_buffer,"t%u=%+.3f\xdfC",j++,ds18b20_temperature(&rom_code[i][0]));
          lcd_clear();
          lcd_puts(lcd_buffer);
          delay_ms(500);
          };
      };
}

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Ср сен 12, 2012 21:26:14
Ромыч
mas123 писал(а): Короче говоря, данных недостаточно, а телепаты в отпуске :)
Как именно не работает? не выводит, не меряет, не так меряет?
Не знаю, что у тебя накручено в функции ds18b20_temperature, но попробую предположить...
А в переменную ds18b20_rom_codes[0][0] ты записал адрес термометра? (который нужно ещё прочитать из самого термометра).
Давай подробности :)

А, ну а резистор то с ноги Data на +5 подцепил? Без него не будет работать.
канеш подцепил) 4к7, как в мануале) меряет непонятно что... выводит цифры 574 или 974. Откуда они берутся мне так и не удалось понять. Даже при отключеном датчике показываются. Могу скинуть весь проект, если требуется)


замена на 18s20 результата не дала.. так же в зависоне непонятное число...
пример пользования 18s20
Спойлер

Код: Выделить всё

/* Multipoint thermometer with LCD display
   using the Dallas Semiconductor DS1820/18S20
   1 Wire bus temperature sensors

   CodeVisionAVR C Compiler
   (C) 2000-2007 HP InfoTech S.R.L.
   www.hpinfotech.ro

   Chip: ATmega8515
   Memory Model: SMALL
   Data Stack Size: 128 bytes
   
   PLEASE MAKE SURE THAT THE CKSEL0..3 FUSE
   BITS ARE PROGRAMMED TO USE THE EXTERNAL
   3.6864MHz CLOCK SOURCE OF THE STK500 AND NOT
   THE INTERNAL 1MHz OSCILLATOR.
   The ATmega8515 chip comes from the factory
   with CKSEL0..3 fuse bits set to use the
   internal 1 MHz oscillator.

   The DS1820/18S20 sensors are connected to
   bit 6 of PORTA of the ATmega8515 as follows:

   [DS1820/18S20] [STK500 PORTA HEADER]
    1 GND         -   9  GND
    2 DQ          -   7  PA6
    3 VDD         -  10 +5V

   All the temperature sensors must be connected
   in parallel
   
   AN 4.7k PULLUP RESISTOR MUST BE CONNECTED
   BETWEEN DQ (PA6) AND +5V !
*/
#asm
    .equ __w1_port=0x1b
    .equ __w1_bit=6
#endasm

/* Use an 2x16 alphanumeric LCD connected
   to PORTC as follows:

  [LCD]   [STK500 PORTC HEADER]
   1 GND- 9  GND
   2 +5V- 10 VCC  
   3 VLC- LCD contrast control voltage 0..1V
   4 RS - 1  PC0
   5 RD - 2  PC1
   6 EN - 3  PC2
  11 D4 - 5  PC4
  12 D5 - 6  PC5
  13 D6 - 7  PC6
  14 D7 - 8  PC7
*/

#asm
    .equ __lcd_port=0x15
#endasm

#include <lcd.h> // LCD driver routines
#include <ds1820.h>
#include <delay.h>
#include <stdio.h>

char lcd_buffer[33];

/* maximum number of DS1820/DS18S20 connected to the 1 Wire bus */
#define MAX_DEVICES 8

/* DS1820/DS18S20 devices ROM code storage area */
unsigned char rom_code[MAX_DEVICES][9];

main()
{
unsigned char i,j,devices;
int temp;

lcd_init(16);
lcd_putsf("CodeVisionAVR\n1 Wire Bus Demo");
delay_ms(2000);
lcd_clear();

/* detect how many DS1820/DS18S20 devices
   are connected to the 1 Wire bus */
devices=w1_search(0xf0,rom_code);
sprintf(lcd_buffer,"%u DS1820\nDevice detected",devices);
lcd_puts(lcd_buffer);
delay_ms(2000);

/* display the ROM codes for each device */
if (devices)
   {
   for (i=0;i<devices;i++)
       {
       sprintf(lcd_buffer,"Device #%u ROM\nCode is:",i+1);
       lcd_clear();
       lcd_puts(lcd_buffer);
       delay_ms(2000);
       lcd_clear();
       for (j=0;j<8;j++)
           {
           sprintf(lcd_buffer,"%02X ",rom_code[i][j]);
           lcd_puts(lcd_buffer);
           if (j==3) lcd_gotoxy(0,1);
           };
       delay_ms(5000);
       };
   }
else
while (1); /* stop here if no devices were found */

/* measure and display the temperature(s) */       
while (1)
      {
      for (i=0;i<devices;)
          {
          temp=ds1820_temperature_10(&rom_code[i][0]);
          j='+';
          if (temp<0)
             {
             j='-';
             temp=-temp;
             };
          sprintf(lcd_buffer,"t%u=%c%i.%u\xdfC",++i,j,temp/10,temp%10);
          lcd_clear();
          lcd_puts(lcd_buffer);
          delay_ms(800);
          };
      };
}

хотя мне кажется что неправильно функция ds1820_temperature_10(&rom_code[0]) работает... ведь даже при отключеном датчике она выдает зловещую цифру

Re: Подскажите схему бортового компьютера на дисплее Nokia 3

Добавлено: Ср сен 12, 2012 22:30:01
mas123
Ромыч писал(а):хотя мне кажется что неправильно функция ds1820_temperature_10(&rom_code[0]) работает... ведь даже при отключеном датчике она выдает зловещую цифру

Учитывая, что в обоих твоих примерах именно этой функции я и не вижу :))
Кароче, см. выше про телепатов и подвал с картошкой :))
Так, попробуй мой сорец. По крайней мере у меня работало :)

Проект собирал под ATmega16 / 4МГц.
Для работы в самом начале вызываешь init_1wire();
Для запуска замера температуры вызывай Ask_DS18B20();
Далее жди, пока Check_DS18B20() не вернет "1" или просто погоди секунду после запроса.
А после вызывай Read_DS18B20() и получишь знаковое целое температуры с десятками.