Перейти к содержанию

Мк Не Видит (Срабатывание Оптопары)


Рекомендуемые сообщения

Собрал схемку, пробую не работает, в протеусе все отлично. МК в порядке если зажигать светодиоды без условия все работает

DDRB=0b00000111;
PORTB=0b00000000;
DDRC=0b00000000;
while(1)
 {	
  if(PINC&(1<<0))
   {
 PORTB = PORTB | 0b000000011;
   }
  else
   {
 PORTB = PORTB & 0b000000000;
   }		 
 }

post-192304-0-61773500-1450633118_thumb.jpg

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

схему вы проверили светодиодом, и перемыкали тоже

программа то же симулируется

бывает по неопытности не правильно выставляют задающий генератор при прошивке и код не запускается

Ссылка на комментарий
Поделиться на другие сайты

Попробуйте резистор 10к заменить на 1к. Желательно, конечно бы, посмотреть осциллографом, что на выходе оптопары творится.

Изменено пользователем IIIytNIK

Молодых и талантливых чрезвычайно много. Целеустремлённых и готовых довести дело до конца — гораздо меньше.

Ссылка на комментарий
Поделиться на другие сайты

думаю что оптопара мигает с частотой 50 гц возможно в этом и проблема только как проверять наличие этих импульсов я увы не знаю

Изменено пользователем 3d_killer
Ссылка на комментарий
Поделиться на другие сайты

да я же привел программу полная такая:

#include <avr/io.h>
#include <math.h>
#include <util/delay.h>
#include <avr/interrupt.h>

//Предустановки
void init()
   {
       DDRB=0b00000110;
       PORTB=0b00000000;
       DDRC=0b00000000;
   }
//Основной цикл                    
int main(void)
{
  init();
  while(1)
 {
  if(PINC&(1<<0))
    {
	 PORTB = PORTB | 0b000000111;
    }
  else
    {
	 PORTB = PORTB & 0b000000000;
    }
       }    
}

Изменено пользователем 3d_killer
Ссылка на комментарий
Поделиться на другие сайты

В настройках допишите PORTC = 0x01

В условии if (pinc & (1<<0)==0)

Изменено пользователем Viktor26

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

ребят, мой косяк, оптопары соеденил вместе а на корпус их не посадил...

вот теперь видно что светодиоды мерцают, можно как то программно без конденсаторов это исправить?

Ссылка на комментарий
Поделиться на другие сайты

Наличие сети отслеживать? Нюхать пин где-нибудь в участке программы который постоянно крутится. Если несколько раз подряд ноль = пропадание сети. А конденсатор чем не угодил? Там любой подножный.

Ссылка на комментарий
Поделиться на другие сайты

вот как нюхать, пробую так не помогает, все равно мерцание, увеличиваю количество циклов горит постоянно

int main(void)
{
init();
while(1)
 {
  k=0;
  for(i=1000; i>0; i--)
   {

 if (PINC & (1<<PINC0))
  {
   k++;	  
  }
   }
  if (k>0)
   {
 PORTB = PORTB | 0b000000111;
   }
  else
   {
 PORTB = PORTB & 0b001111000;	 
   }	   
 } 
}

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

уже как бы проблема кондеры паять

post-192304-0-78094900-1450642541_thumb.jpg

post-192304-0-44491000-1450642553_thumb.jpg

Ссылка на комментарий
Поделиться на другие сайты

    while(1)
       {
           k=0;
           for(i=100; i>0; i--)
               {
                   _delay_ms(8);
                   if (PINC & (1<<PINC0))
                       {
                           k++;                            
                       }
               }
           if (k>0)
               {
                   PORTB = PORTB | 0b000000111;
               }
           else
               {
                   PORTB = PORTB & 0b001111000;                        
               }                                
       }

при включении один раз мигает и дальше продолжает гореть

если ставлю 1000, то при переключении тухнет секунды на 2 и опять горит

Ссылка на комментарий
Поделиться на другие сайты

Может у вас после срабатывания реле какая импульсная помеха по питанию? Попробуйте без реле если они подключены.

Попробуйте с отпаянным входом оптрона. Может он шумит.

Изменено пользователем straw
Ссылка на комментарий
Поделиться на другие сайты

так реле сработало и держит, while цикл идет, если и помеха то он или мигать должен или с задержкой потухнуть, но он то не тухнет

Ссылка на комментарий
Поделиться на другие сайты

Попробуйте один диод в цикле зажечь в else. И задержите немного. Ощущение что в программе косяк и она туда не вываливается ни разу. И вообще, диоды зажигать в разных участках программы.

У вас младщий бит тут не на вход настроен?

DDRB=0b00000110;

Ссылка на комментарий
Поделиться на другие сайты

Просто на схеме размыто, не видно к каким ногам процессора диоды. А в протеусе не 110 а 111. Может в этом косяк. Но гореть не должен тогда вроде.

И до выяснения вместо оптрона кнопку бы.

Может компилятор с симулятором по-разному команды понимает?

Если записать так? PORTB&=0b000000000 вместо PORTB = PORTB & 0b000000000

Изменено пользователем straw
Ссылка на комментарий
Поделиться на другие сайты

если оптрон замыкаю (выход), светодиод тухнет

в схеме светодиоды на выходах b1 b2, если писать так 111 то цепляем еще и b0, не ошибка но он не нужен

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...