Светодиодный индикатор в примусе.

Какой вариант светодиодной приставки использую или собираюсь использовать?

На регистрах 74HC164
21
50%
На микроконтроллере ATtiny2313
16
38%
Не использую и не собираюсь
5
12%
 
Всего голосов : 42

Re: Светодиодный индикатор в примусе.

Сообщение slav0n » 16 мар 2010, 15:40

Рассекречу конечно. Протокола как такового еще нет. Сейчас сделано так:
адрес устройства - 180
принимаем два байта.
во втором инфа для индикатора.

Обработка происходит в прерывании.
Код: Выделить всё
ISR(SIG_INTERRUPT0)
{
  unsigned char data_byte;
  unsigned char i;   

  while(bit_is_clear(I2C_PORTIN,SCL_PIN))return;

  while(bit_is_set(I2C_PORTIN,SCL_PIN)); //ждем пока клок высокий

//========== Принимаем байт адреса===================
  data_byte = 0;
  i = 8;
do{
  while(bit_is_clear(I2C_PORTIN,SCL_PIN)); //ждем пока клок низкий
  data_byte <<= 1; 
  if(bit_is_set(I2C_PORTIN,SDA_PIN))data_byte |= 1;
  while(bit_is_set(I2C_PORTIN,SCL_PIN)); //ждем пока клок высокий 
  }while(--i);

if(data_byte == 180)
{
  I2C_DDR |=_BV(SDA_PIN);  // порт на вывод
  I2C_PORT&=~_BV(SDA_PIN);  // выводим ноль
 
  while(bit_is_clear(I2C_PORTIN,SCL_PIN)); //ждем пока клок низкий
  while(bit_is_set(I2C_PORTIN,SCL_PIN)); //ждем пока клок высокий 
 
  I2C_DDR &=~_BV(SDA_PIN);  // отпускаем СДА
  I2C_PORT&=~_BV(SDA_PIN);
}else goto out;
 
//========== Принимаем 1-й байт ===================     
data_byte = 0;
i = 8;
do{
  while(bit_is_clear(I2C_PORTIN,SCL_PIN)); //ждем пока клок низкий
  data_byte <<= 1; 
  if(bit_is_set(I2C_PORTIN,SDA_PIN))data_byte |= 1;
  while(bit_is_set(I2C_PORTIN,SCL_PIN)); //ждем пока клок высокий 
  }while(--i);

  I2C_DDR|=_BV(SDA_PIN);  // порт на вывод
  I2C_PORT&=~_BV(SDA_PIN);  // выводим ноль

  while(bit_is_clear(I2C_PORTIN,SCL_PIN)); //ждем пока клок низкий
  while(bit_is_set(I2C_PORTIN,SCL_PIN)); //ждем пока клок высокий 
 
  I2C_DDR&=~_BV(SDA_PIN);  // отпускаем СДА
  I2C_PORT&=~_BV(SDA_PIN);

  /*   
      if(data_byte<2)  {PORTB = 0b11110111;PORTD = 0x40;}
else if(data_byte<4)  {PORTB = 0b11100011;PORTD = 0x40;}
else if(data_byte<6)  {PORTB = 0b11000001;PORTD = 0x40;}
else if(data_byte<8)  {PORTB = 0b10000000;PORTD = 0x40;}
else if(data_byte<16) {PORTB = 0b00000000;PORTD = 0x00;}
else if(data_byte>110){PORTB = 0b11111111;PORTD = 0x00;}

*/


//========== Принимаем 2-й байт ===================     
data_byte = 0;
i = 8;
do{
  while(bit_is_clear(I2C_PORTIN,SCL_PIN)); //ждем пока клок низкий
  data_byte <<= 1; 
  if(bit_is_set(I2C_PORTIN,SDA_PIN))data_byte |= 1;
  while(bit_is_set(I2C_PORTIN,SCL_PIN)); //ждем пока клок высокий 
  }while(--i);

  I2C_DDR|=_BV(SDA_PIN);  // порт на вывод
  I2C_PORT&=~_BV(SDA_PIN);  // выводим ноль

  while(bit_is_clear(I2C_PORTIN,SCL_PIN)); //ждем пока клок низкий
  while(bit_is_set(I2C_PORTIN,SCL_PIN)); //ждем пока клок высокий 
 
  I2C_DDR&=~_BV(SDA_PIN);  // отпускаем СДА
  I2C_PORT&=~_BV(SDA_PIN); 
   
      if(data_byte<1){PORTB = 0b11110111;PORTD = 0x40;}
else if(data_byte<2){PORTB = 0b11100011;PORTD = 0x40;}
else if(data_byte<3){PORTB = 0b11000001;PORTD = 0x40;}
else if(data_byte<4){PORTB = 0b10000000;PORTD = 0x40;}
else if(data_byte<8){PORTB = 0b00000000;PORTD = 0x00;}
else if(data_byte>8){PORTB = 0b11111111;PORTD = 0x00;}
else if(data_byte=8){PORTB = 0b11111111;PORTD = 0x40;}
 
out: 
  while(bit_is_clear(I2C_PORTIN,SCL_PIN)); //ждем пока клок низкий
}


Для народного творчества надо договориться - что, и как выводить в байты на передачу.

Предлагаю, например, в первом - байт уровня, во втором - SNR.
И творите в приставке с ними всё что вам угодно. Хотите линейную шкалу , хотите в цифрах.
Можно взять мегу8, и задействовать аппаратный TWI. Это будет даже лучше, чем программная реализация шины I2C.
В общем - поле для творчества.... :pri_vet:-:
while(1||!1);
slav0n
Site Admin
 
Сообщения: 4637
Зарегистрирован: 15 ноя 2009, 18:43
Благодарил (а): 24 раз.
Поблагодарили: 407 раз.

Re: Светодиодный индикатор в примусе.

Сообщение 777z » 29 мар 2010, 15:27

Если возможно в будущем поправить.
При входе в режим поиска индикатор начинает светиться, а при выходе не гаснет до выключения.
И если возможно добавить в меню настроек отключение индикатора, как это сделано у зуммера.
777z
 
Сообщения: 21
Зарегистрирован: 05 дек 2009, 16:31
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение slav0n » 26 авг 2010, 16:26

Замечена неработоспособность приставки с внешней памятью спектрума.
Здесь была попытка устранить - viewtopic.php?p=2174#p2174
Еще предлагаю попробовать подцепить к тини кварц на 10-20 МГц и выставить соответственно фузы.
while(1||!1);
slav0n
Site Admin
 
Сообщения: 4637
Зарегистрирован: 15 ноя 2009, 18:43
Благодарил (а): 24 раз.
Поблагодарили: 407 раз.

Сообщение slav0n » 27 авг 2010, 10:08

Вот придумал такую схему. Вместо микроконтроллера используется простой сдвиговый регистр 74HC164. В ближайшее время сделаю под неё прошивку для спектрума.
Вложения
LED_74HC164.GIF
LED_74HC164.GIF (7.15 Кб) Просмотров: 769
while(1||!1);
slav0n
Site Admin
 
Сообщения: 4637
Зарегистрирован: 15 ноя 2009, 18:43
Благодарил (а): 24 раз.
Поблагодарили: 407 раз.

Сообщение slav0n » 29 авг 2010, 17:19

Как и обещал прошивка с поддержкой новой схемы светодиодного индикатора точной настройки.
Вложения
S-290810.rar
(19.86 Кб) Скачиваний: 35
while(1||!1);
slav0n
Site Admin
 
Сообщения: 4637
Зарегистрирован: 15 ноя 2009, 18:43
Благодарил (а): 24 раз.
Поблагодарили: 407 раз.

Сообщение slav0n » 29 авг 2010, 19:34

Немного поэкспериментировал...
Вот слегка измененная схема индикатора. RC цепь позволяет подключиться к примусу всего тремя проводами.
И соответствующая прошивка для спектрума.
Вложения
74HC164_1.GIF
74HC164_1.GIF (7.47 Кб) Просмотров: 730
S-290810_1.rar
(19.91 Кб) Скачиваний: 41
while(1||!1);
slav0n
Site Admin
 
Сообщения: 4637
Зарегистрирован: 15 ноя 2009, 18:43
Благодарил (а): 24 раз.
Поблагодарили: 407 раз.

Сообщение tssssu » 29 авг 2010, 21:15

Подскажите, а реально ли к 168 примусу эту приставку прикрутить?
1 нога там свободна, но думаю с ней это не выдет, еще есть 25 нога, или может освободить 14 или 18 ногу и задействовать?
Или может там уже места нет?
tssssu
 
Сообщения: 39
Зарегистрирован: 17 ноя 2009, 23:05
Благодарил (а): 0 раз.
Поблагодарили: 5 раз.

Сообщение slav0n » 30 авг 2010, 04:10

tssssu писал(а):а реально ли к 168 примусу эту приставку прикрутить?1 нога там свободна, но думаю с ней это не выдет, еще есть 25 нога

Сделаю на 25 ножку.
while(1||!1);
slav0n
Site Admin
 
Сообщения: 4637
Зарегистрирован: 15 ноя 2009, 18:43
Благодарил (а): 24 раз.
Поблагодарили: 407 раз.

Сообщение slav0n » 03 сен 2010, 14:04

Вот здесь viewtopic.php?p=2275#p2275 поступило предложение расширить функциональность приставки. Вот предварительная схема. В ней надо продуманно подключить индикаторы чтобы меньше было мороки при разводке печатки. Если кто возьмется за это дело и воплотит в железе, то за прошивкой на спектрум дело не станет :mi_ga_et:
Вложения
3x74HC164.rar
(7.82 Кб) Скачиваний: 78
while(1||!1);
slav0n
Site Admin
 
Сообщения: 4637
Зарегистрирован: 15 ноя 2009, 18:43
Благодарил (а): 24 раз.
Поблагодарили: 407 раз.

Сообщение technik08 » 03 сен 2010, 16:42

можно 2 мегу прикрутить
хочеш светодиоды хочеш понорама

думаю разбобить свой китайский светодиодный
место блого есть
technik08
 
Сообщения: 35
Зарегистрирован: 17 ноя 2009, 21:17
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Сообщение slav0n » 03 сен 2010, 22:07

к чему вторая мега? тини уже прикручивать попытались...
Кто ж прошивки писать будет?
while(1||!1);
slav0n
Site Admin
 
Сообщения: 4637
Зарегистрирован: 15 ноя 2009, 18:43
Благодарил (а): 24 раз.
Поблагодарили: 407 раз.

Сообщение technik08 » 04 сен 2010, 08:10

пытался, что у меня зависал
надо мне это довести до ума
но у китайца шкала более информативна
technik08
 
Сообщения: 35
Зарегистрирован: 17 ноя 2009, 21:17
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Сообщение slav0n » 06 сен 2010, 18:21

Вот вам основная схема с которой будем дальше продвигать LED индикатор.
Рассчитана на семисегментники с общим катодом, просто у меня такие. Если надо - переделаю для общего анода.
Вложения
3x74HC164.GIF
while(1||!1);
slav0n
Site Admin
 
Сообщения: 4637
Зарегистрирован: 15 ноя 2009, 18:43
Благодарил (а): 24 раз.
Поблагодарили: 407 раз.

Сообщение Guslik » 06 сен 2010, 19:33

slav0n почему два индикатора сегмента а не три???????????????
Вроде у нас максимум сигнала за 210????
Аватара пользователя
Guslik
 
Сообщения: 482
Зарегистрирован: 27 ноя 2009, 21:10
Откуда: Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 22 раз.

Сообщение slav0n » 06 сен 2010, 19:49

будем дублировать большие цифры и градусы спутника при его переключении.
Но в принципе нет ограничений! Можно и третью цифру прикрутить. Да хоть десять! Только на каждую цифру надо отдельную 164-ю с отдельным семисегментником.
while(1||!1);
slav0n
Site Admin
 
Сообщения: 4637
Зарегистрирован: 15 ноя 2009, 18:43
Благодарил (а): 24 раз.
Поблагодарили: 407 раз.

Сообщение slav0n » 07 сен 2010, 20:10

Индикатор по последней схеме успешно запущен.
Можно его сделать как внешнее устройство и подключать через любой 3-х контактный разъем
Вот кино его работы. Спаяно навесным монтажем.
Вложения
led.rar
(2.04 МБ) Скачиваний: 61
while(1||!1);
slav0n
Site Admin
 
Сообщения: 4637
Зарегистрирован: 15 ноя 2009, 18:43
Благодарил (а): 24 раз.
Поблагодарили: 407 раз.

Сообщение ssu-05 » 08 сен 2010, 05:39

всё классно! работает так как надо! третья цифра ни к чему! а в корпус его засунуть нетрудно, есть малогабаритные индикаторы! например: http://www.chipdip.ru/product/als314a.aspx
а вот количество микросхем регистров сдвига неплохо бы сократить, а самое главное необходимо чтобы приставка выключалась через меню, может ключик по питанию приладить?
Аватара пользователя
ssu-05
 
Сообщения: 317
Зарегистрирован: 25 ноя 2009, 21:12
Откуда: Свердловская область
Благодарил (а): 0 раз.
Поблагодарили: 6 раз.

Сообщение Guslik » 08 сен 2010, 09:38

SlaV0n выложи схему как подключить цифровой индикатор :du_ma_et:
Аватара пользователя
Guslik
 
Сообщения: 482
Зарегистрирован: 27 ноя 2009, 21:10
Откуда: Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 22 раз.

Сообщение slav0n » 08 сен 2010, 11:28

подключение элементарно:
Корпус,
+5В,
и нога PA4
Вложения
PA4.jpg
while(1||!1);
slav0n
Site Admin
 
Сообщения: 4637
Зарегистрирован: 15 ноя 2009, 18:43
Благодарил (а): 24 раз.
Поблагодарили: 407 раз.

Сообщение Guslik » 08 сен 2010, 13:17

Дане!!!!!!! как соединил индикатор и регисторы???
Аватара пользователя
Guslik
 
Сообщения: 482
Зарегистрирован: 27 ноя 2009, 21:10
Откуда: Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 22 раз.

Пред.След.

Вернуться в Общая информация по всем модификациям primuss3

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron