Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Relay control..(няма код)
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=10144
Страница 1 от 3

Автор:  hacker4eto1 [ Пет Май 18, 2012 9:45 pm ]
Заглавие:  Relay control..(няма код)

Здравейте момчета ,уникален форум с много полезни неща :) Браво за което ...
Имам следният проблем и се моля за малко помощ... (за мен е голяма понеже програмирането ми е ..(what a mess.. :cry: ))
Та в момента се занимавам с една кодова брава (проект от чужд сайт).
Ето схемата за сега..
Изображение
Като успях да променя малко сорс кода ,сложих някой прости функции като какво да изписва на екрана ,смених каква да ми е паролата ,като от 6 я направих на 3 знакова.. резервирах 2 изхода за грешки дали да мигат диодите или да светят колко време ..
с 2 думи Прости неща.. доста мъки и проби с MPLAB....
С това се справих.. идва другата бъркотия... реших да модна още проекта.. като за целта ми трябва малко помощ от вас...
Какво се опитвам да направя :
На ето тази схема ясно ще разберете идеята но ще споделя идеята с вас :finga: :finga:
Изображение
С въпросният бутон който се вижда на схемата искам да контролирам 3 те релета...
Идеята е Проста алгоритъма незнам.
Режимът е следния :
Едно натискане на бутона реле 1 стартира...
Още едно натискане реле 1 спира реле 2 се стартира...
При 3 то натискане реле 2 спира реле 3 се пуска.
При 4 то натискане реле 3 изгася диода D4 се пуска.
При 5 то натискане цикъла да започва отначало..
Благодаря на всички отзовали се...
П.П В нас се намира един излишен pic16f628а дали не може да го заместя него в схемата ,че да не давам излишно пари и да чакам да ми докарат малкия Pic...
Само се надявам на Добри самаряни които да ударят едно рамо за кода...

Автор:  amdatlon [ Пет Май 18, 2012 11:40 pm ]
Заглавие:  Re: Relay control..(няма код)

Може да се направи примерно с една променлива която при натискане на бутона да се
увеличава с 1. После един Switch да превключва в зависимост от променливата.

Не спомена на асемблер ли пишеш или на C.

Ето малко примерен алгоритъм, ще трябва да го пригодиш към компилатора.

Код:

i=0;

While ( 1 )
{
If ( Button==0)
{
    i++;
    if( i>4)
     { i=1;}
 
   Switch (i)
    {   
      case 1: {  //  реле 1 стартира
                      P4=0;
                      P0=1;

                     // твоя код тук
                }Break;
   
     case 2: {  //  реле 1 спира реле 2 се стартира...
                   P0=0;
                  P1=1;
                 // твоя код тук
                }Break;


     case 3: {  //  реле 2 спира реле 3 се пуска.
                    P1=0;
                    P2=1;
                    // твоя код тук
             }Break;

     case 4: {  // реле 3 изгася диода D4 се пуска.
                     P2=0;
                     P4=1;
                      // твоя код тук
             }Break;
 
     }

  delay_ms(50);

  }



}
     

Автор:  marcuka68 [ Съб Май 19, 2012 10:49 am ]
Заглавие:  Re: Relay control..(няма код)

Да, става и ПИК 16Ф628 за целта.

Автор:  Н'бабане Гт'муан'га [ Съб Май 19, 2012 11:42 am ]
Заглавие:  Re: Relay control..(няма код)

Ако релетата са ти на порта както е на схемата, можеш да го направиш и така:

Код:
void main(void) {

    // тука ти идват инициализациите на хардуера

    while (1) {
        if (PORTB&0x40) {
            static unsigned char rmask=0;
            rmask? rmask=(rmask<<=1)&0x1f : rmask=1;
            if (rmask&8) rmask<<=1;
            PORTB=(PORTB&~0x1f)|rmask;
            while (PORTB&0x40) delay_ms(20);
        }
        delay_ms(20);
    }
}

Автор:  hacker4eto1 [ Съб Май 19, 2012 12:00 pm ]
Заглавие:  Re: Relay control..(няма код)

Aми да си призная честно нито на Асемблер мога нито на С :cry:
заредих и 2 та сорс кода който ми дадохте но ми излязаха много грешки които не мога да си разшифровам .. по готов код мога да правя леки промени но не мога аз да го създам :) та ако може още малко насока ..
Програмите с които работя са MPLAB & MicroC PRO for Pic..
П.П та ако може да обясните като на lamer ще е най-добре и мерси пак за помоща :!:

Автор:  Н'бабане Гт'муан'га [ Съб Май 19, 2012 12:27 pm ]
Заглавие:  Re: Relay control..(няма код)

Грешки ти дава, понеже ти липсва хедъра ама той зависи от компилатора. Сложи го и ще е ок.
Всъщност сега се сещам, че може да позваш ако искаш и нещо друго - бейсик например. Тогава ще ти е по-лесно в началото :wink:

Автор:  hacker4eto1 [ Съб Май 19, 2012 12:32 pm ]
Заглавие:  Re: Relay control..(няма код)

да но не мога да генрирам hex. файла като ми дава грешка за да го заредя в програмата и да симулирам :)

Автор:  CarBeta [ Съб Май 19, 2012 12:52 pm ]
Заглавие:  Re: Relay control..(няма код)

Точно ти написах пример на асемблер, но виждам, че не ти трябва обяснение а обучение! С примерите, които ти дадоха, релетата вече трябваше да щракат.

Автор:  hacker4eto1 [ Съб Май 19, 2012 1:52 pm ]
Заглавие:  Re: Relay control..(няма код)

Некъв линк дето да прочета като за тъпаци относно бейсик програмиране :)

Автор:  Н'бабане Гт'муан'га [ Съб Май 19, 2012 1:58 pm ]
Заглавие:  Re: Relay control..(няма код)

hacker4eto1 написа:
Некъв линк дето да прочета като за тъпаци относно бейсик програмиране :)


http://www.mikroe.com/pdf/mikrobasic/mikrobasic_manual.pdf

Автор:  Cekins [ Съб Май 19, 2012 3:46 pm ]
Заглавие:  Re: Relay control..(няма код)

Н'бабане, баш от тебе не очаквах да предложиш да пише на бейсик :). Не че не е лесно, ама като се свикне и после отиде.

Пък и дори и на бейсик пак трябва да се конфигурира някой друг SFR... Така с гол код нийде няма да тръгне.

Автор:  hacker4eto1 [ Съб Май 19, 2012 4:03 pm ]
Заглавие:  Re: Relay control..(няма код)

Явно ,ще мисля алтернатива някаква :) без микропроцесор.

Автор:  Cekins [ Съб Май 19, 2012 7:05 pm ]
Заглавие:  Re: Relay control..(няма код)

Не е като да няма такива варианти :)

Автор:  hacker4eto1 [ Съб Май 19, 2012 7:32 pm ]
Заглавие:  Re: Relay control..(няма код)

Просто елементите ще станат по-вече а мястото ограничено това е :) но мерси все пак на отзовалите се

Автор:  hacker4eto1 [ Съб Май 19, 2012 8:37 pm ]
Заглавие:  Re: Relay control..(няма код)

Момчета преинсталирах ОС то и сега като компилирам с програмата MPLAB v8.30 ми дава грешка номер 141 преди я оправих но мина доста време и съм забравил...ако някой е имал този проблем нека каже решението..
Ето какво ми пише:

Make: The target "C:\Users\TOTO\Desktop\TOTO\Example-Code.p1" is out of date.
Executing: "C:\Program Files\HI-TECH Software\PICC\PRO\9.60\bin\picc.exe" --pass1 C:\Users\TOTO\Desktop\PIC-Controlled-Relay-Driver\Example-Code.C -q --chip=12F629 -P --runtime=default --opt=default -D__DEBUG=1 -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
Error [141] C:\Users\TOTO\Desktop\PIC-Controlled-Relay-Driver\Example-Code.C; 4.18 can't open include file "delay.c": No such file or directory

********** Build failed! **********

Страница 1 от 3 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/