Македонски форум за електроника

Дигитална електроника => Микроконтролери => Topic started by: DS on 04.02.2015, Wednesday, 16:18:12

Title: Помош со PIR сензор
Post by: DS on 04.02.2015, Wednesday, 16:18:12
Од ебај порачав вакво pir сензорче па ми треба мала помош околу програмирањето на управувачот :)

Code: [Select]
http://carlosdelfino.eti.br/images/sensor/pir/infrared-pir-sensor-detector-module-01.jpg
Значи вака ја користам оваа шема
(http://s9.postimg.cc/4qg708n33/ovaaa.jpg)

па сакам да прашам дали можам колово да го напојувам без трафо т.е со оваа шема
Code: [Select]
http://i1162.photobucket.com/albums/q537/0x4E4F/0x4E4F001/transformerless_power_supply.png
и дали кодов  има смисла? :)

Code: [Select]
void main() {

GPIO= 1; // inicizlizacija na IO porti
TRISIO=0; // konfiguriraj gi kako izlezni
TRISIO5= 1; // stavi go gp5 vlezen pin na  kec na pocetok




while(1)
{

while(1)
{
GP4 = 0xFF;           // turn ON diodes on GPIO
    Delay_ms(1000*30);        // wait 3 second
    GP4= 0;              // turn OFF diodes on GPIO
    Delay_ms(1000*30);        // wait 30 second
           }


if (GP5) // ako e kec

GP2=1; stavi na kec

else // ako padne na nula

Delay_ms(1000*60); // cekaJ 60 sec. pa stavi go na nula
GP2=0;

}

}

// SAKAM NA 30 SEKUNDI DA TREPKA DIODATA NA GP4.
// I KOGA KE DOJDE KEC NA GP5 KOJ E VLEZEN PIN
// IZLEZNIOT GP2 DA GO DRZI PUSTEN PRIMER 60 SEKUNDI

// koristam pic 12f675


Title: Одг: Помош со PIR сензор
Post by: SKOLS_OLD on 04.02.2015, Wednesday, 22:22:45
Мој предлог:
1.Тоа безтрансформаторско напојување ако го преоптовариш може кондензаторот да експлодира,па затоа наместо такво напојување од стар полнач за мобилен телефон,што на излез дава 5волти 500мили ампери(импулсно напојување-со индуктивитет) тоа ќе ти биде во ред.
2.Наместо микроконтролер,можеш да искористиш транзисторски прекинувач,со еден BC547 и завршена работа.Ако користиш микроконтролер,треба да ги исклучиш компараторите и да ги иницијализираш дигиталните пинови(CMCON регистер мислам дека беше).
Title: Одг: Помош со PIR сензор
Post by: batka on 05.02.2015, Thursday, 23:29:34
Го имаш проектот овде

Code: [Select]
http://cxem.net/mc/mc115.php
Title: Одг: Помош со PIR сензор
Post by: DS on 06.02.2015, Friday, 21:37:18
Се обидувам да напишам мој код, на шемата од проектот направив корекција.наместо звучник сакам да управувам реле. напишав еден код, може ли некој да види каде грешам и зошто не работи. во продолжение е кодот со коментари :)

Code: [Select]
void main() {

  ANSEL  = 0;              // Configure AN pins as digital
  ADCON0 = 0;                 // Shut off the A/D Converter
  CMCON  = 7;              // Turn off the comparators
               // configure pins of GPIO as output     izlezni porti,GPIO se IO portite-vlezni
                         // set pin GP5 as input
                                      // inicilizacija oa GP5 na nula, so toa odma da go pusti releto na pocetok :)
    TRISIO = 0b00101000;       //  rest all output
                        //   TRISIO5 = 0xFF;                 // Make GP5 as input

    GPIO   = 0;       // Make all pins 0
   while(1)   {
  
       if (GP5) // ako e nula

       GPIO.GP2=0xFF; //stavi na kec      {izlezen pin}    vkluci rele
                // vaka nema da pomine GP2=1, dali treba vaka :    TRISIO.GP2=1;
                // ili vaka:   GPIO.GP2=1;

                        else // ako stane GP5 -> kec    == 5V
        
        Delay_ms(6000); // cekaJ 6 sec. pa stavi GP5=0      // iskluci rele posle 60 sekundi

         GPIO.GP2=0;    // izlezen gp2 stavi na nula t.e iskluci rele
                 // vaka nema da pomine GP2=0, dali treba vaka :    TRISIO.GP2=0;
                 // ili vaka:   GPIO.GP2=0;
                 // kako se pristapuva do vlezen ili izlezen pin? GP NA PIC12F675 ???

}        // kraj loop


}

кога ке падне на нула gp5 сакам gp2 да го стави кец и да запали релето :) склопено ми е на протоборд со сите компоненети, кога ке детектира сензорот на излез напонот паѓа на 0в , а така и треба и така ми е во кодот но не пали релето :) anyone? :D
Title: Одг: Помош со PIR сензор
Post by: Devil on 06.02.2015, Friday, 22:12:44
За да вклучи релето од шемата погоре, на базата на транзисторот треба да имаш дигитална 1 или 5V
Мислам дека се назначуваат како GPIO.1 итн
Quote
ANSEL = 0; // Configure AN pins as digital
CMCON = 7; // Turn off the comparators
TRISIO = 0; // configure pins of GPIO as output

влезот од пир сензорот конфигурирај го како влез, направи проста програма, кога на влез има 1 на излез нека има 1, ко ќе проработи тоа после играј си со вклучи исклучи зависно од поставувањата
Title: Одг: Помош со PIR сензор
Post by: MarkoMK on 07.02.2015, Saturday, 13:47:17
Вака, прво околу функцијата, односно што дава на излез конкретниот ПИР сензор (мислам дека тука е целиот проблем): Пир сензорот кога ќе детектира движење дава високо ниво, и тоа не дава импулс него тоа високо ниво трае одредено време кое се подесува со еден од двата тримери на плочката. Со другиот тример се подесува осетливоста. Исто така на плочката има и џампер со кој се подесува дали да се продолжи времето на високо ниво ако се уште има некој во близина на сензорот или да се спушти на ниско ниво (па по потреба пак да уклучи).
Значи овој модул има се што е потребно за да направиш, на пример сјалица да се пали во некоја просторија, ходник, влез, без разлика. Ти само треба да додадеш напојување и реле со транзистор на излезот (out) за оваа основна намена. Не ти требаат микроконтролери.
Секако, во случај да сакаш да експериментираш тогаш стави микроконтролер, ама пази на излезот од пир-сензорот (што кажав на почетокот).
ПС.
Јас имам направено со ист ваков контролер, (со капацитивно напојување и реле) на влезот од зградата моја да се пали светло кога ќе влезе некој и работи одлично веќе неколку години.  :)
Title: Одг: Помош со PIR сензор
Post by: DS on 08.02.2015, Sunday, 01:27:46
Значи вака во врска си пир сензорот . Како што кажа модулот кој го порачав од ебај има два тримери со кои со едниот се подесува осетливоста , а со другиот времето, колку време ке го држи вклучено релето. Самиот модул кога ке детектира движење на излез дава 3V (логичка единица) . На следнава шема не функционира така, има отрпорник кој што е врзан едниот крај на вцц (5V) на пирот а другиот крај на транзисторот и пикот, па во случајот кога нема движење на влезот на пикот одат 5ВV (логичка единица), а кога има движење напонот паѓа поради pull up отпорникот. така и треба.
http://s9.postimg.cc/4qg708n33/ovaaa.jpg (http://s9.postimg.cc/4qg708n33/ovaaa.jpg)
Знам дека може без микроуправувач, но сакам вака да го направам.. :)
Така ми е кодот, кога на влезот на пикот напонот падне на нула да вклучи релето, ама не функционора... Не знам како се користи во кодот за да го кажам баш тоа.. само
if (GP5)
 GP2=0xFF;
...
.
 
не сака да помине. треба ли некоја библиотека?
Title: Одг: Помош со PIR сензор
Post by: Devil on 08.02.2015, Sunday, 01:40:16
вака некако, незнам одамна не сум работел со пик
Code: [Select]
if (gpio.5 == 0)
{
gpio.2 = xx ;
delay_ms(100);
}

треба да направиш споредба, дали пинот е на високо или ниско логичко ниво, или дали има промени од претходно, односно зависи како сакаш да го користиш контролерот, не е баш за овај пример тоа, ама по некогаш сакаш да провериш дали има промена некаква пр од ниско на високо ниво или обратно од високо на ниско логичко ниво
Title: Одг: Помош со PIR сензор
Post by: Zan on 08.02.2015, Sunday, 09:58:56
DS, може да кажеш кој компајлер го користиш? Јас користам mikoBasic од Mikroelektronika. Иако не знам програмски јазик C, гледам дека има премногу грешки во твојот код.
Пиновите од овој микроконтролер (PIC12F675) се означуваат со
Code: [Select]
GPIO.0
GPIO.1
GPIO.2
GPIO.3
GPIO.4
GPIO.5

Секој пин, што е дефиниран како излез, може да има вредност или 1 или 0. Не може да има вредност 0xFF, како што си напишал.

За да го вклушиш релето, напиши
Code: [Select]
GPIO.2 = 1


За да го исклучиш релето
Code: [Select]
GPIO.2 = 0

кога ке падне на нула gp5 сакам gp2 да го стави кец и да запали релето
Ова напишано во mikroBasic изгледа вака
Code: [Select]
if GPIO.5 = 0 then
    GPIO.2 = 1
else
    GPIO.2 = 0
end if
Ова е наједноставно, без никакви услови и временски задршки.
Пробај, па кажи што си направил.
Title: Одг: Помош со PIR сензор
Post by: i_ivica on 12.02.2015, Thursday, 17:45:29
Условот "IF", како што го имаш напишано

Code: [Select]
      if (GP5) // ako e nula
}

е исполнет доколку вредноста на GP5 е различна од '0'. Значи доколку сакаш условот да биде исполнет  во случај кога GP5 e '0', тогаш треба да напишеш:

Code: [Select]
    if (GP5 == 0)
ili
    if (!PG5)

каде знакот " ! " е знак за негација.

Исто така, сите команди кои сакаш да се извршат доколку е исполнет условот, се стават во загради:
Code: [Select]
    if (uslov) {
        komanda1;
        komanda2;
        .
        .
        komandaN;
    } else {
        komanda1;
        komanda2;
        .
        .
        komandaN;
    }

освен доколку имаш само една команда.

Кај тебе после else-от ќе се изврши само првиот ред, односно функцијата за доцнење, додека:
Code: [Select]
GPIO.GP2=0;    // izlezen gp2 stavi na nula t.e iskluci rele

ќе се извршува во секој случај, односно, без оглед на условот. Ова значи дека секогаш релето ќе ти се исклучува. Затоа и овој ред треба да го ставеш во заградите кои припаѓаат на else делот.
Title: Одг: Помош со PIR сензор
Post by: DS on 13.02.2015, Friday, 01:39:08
ви благодарам на сите за помошта, некако успеав да го испрограмирам, најобично со if-else ,ке треба да се досреди со интерапти :)
наидов на друг проблем, направив плочка за шемата и сега на плочката ставив трафо 12V ac, при тоа најдов грец од напојување од компјутер кое што го поврзав на плочката, но напонот расте многу на 20-25V dc, до грецот е нешто ? :)
Title: Одг: Помош со PIR сензор
Post by: BorceBT on 13.02.2015, Friday, 02:33:24
Ако трафото дава 12V AC тогаш после грецот и кондензаторот имаш 12V * 1.41= 16.9. 20-25 неможе да добиеш, стави некој отпорник од 470 оми 1 ват да не има некој ripple напон таму што го лажи унимерот и мери пак. Или можеби немаш кондензатор после грецот и се буни унимерот.
Title: Одг: Помош со PIR сензор
Post by: DS on 14.02.2015, Saturday, 19:45:42
AC 15V, а DC после грецот 25V. правилно ли е тоа? :) 15*1.41=21.15V
Title: Одг: Помош со PIR сензор
Post by: Zan on 14.02.2015, Saturday, 20:51:18
Има ли кондензатор после грецот?
Title: Одг: Помош со PIR сензор
Post by: DS on 15.02.2015, Sunday, 14:09:00
ставив кондензатор после грецот,паралелно 2200 микрофаради напонот расте на 50V :/
Title: Одг: Помош со PIR сензор
Post by: LordZi on 15.02.2015, Sunday, 14:10:28
Нешто не ти е во ред со инструментот.
Пробај оптовари го напојувањето со отпорник околу 1k и пак мери...
Title: Одг: Помош со PIR сензор
Post by: DS on 15.02.2015, Sunday, 14:34:23
Со помал кондензатор 100 микро што е врзан на 7805 дава 30v без оптоварување ,не ке да е инструментот. а напонот на 7805 покажува 7V ке работи ли пикот на 7V? чудно
Title: Одг: Помош со PIR сензор
Post by: Zan on 15.02.2015, Sunday, 14:55:37
Провери со друг инструмент. 7805 не смее да дава повеќе од 5,1 волт! На 7 волти пикот ќе изгори.
Title: Одг: Помош со PIR сензор
Post by: GigaWatt on 15.02.2015, Sunday, 16:53:33
ставив кондензатор после грецот,паралелно 2200 микрофаради напонот расте на 50V :/

На кое подрачје мериш? На 200V еднонасочен? Случајно LCD дисплејот од инструментот да не има лош контакт и не ја јавува децималната запирка ;D?
Title: Одг: Помош со PIR сензор
Post by: KiloVolt on 15.02.2015, Sunday, 18:57:33
Теоријава од Гига најмногу вода ми држи од сите мислења досега... Провери, нема што да изгубиш...
Title: Одг: Помош со PIR сензор
Post by: DS on 16.02.2015, Monday, 00:05:01
чудна работа грецот го ставив на протоборд и врзав 15V AC на излез дава 17-18V (на мерно подрачје до 20V) така има логика, а на плочкава кога мерам DC(еднонасочен) на мерно подрачје 20V не може да го прикаже резултат, го ставам на 200V DC ми јавува 55V (има кондензатор после грецот) :o (на излез од регулаторот дава некој логичен напон 5,3V) . можно ли е да има некоја интерференција дека на плочката поминува 220V наизменичен на некои водови иако не верувам. еве како ми е изработена плочката :)

(http://i1162.photobucket.com/albums/q537/0x4E4F/0x4E4F001/image.png)

Title: Одг: Помош со PIR сензор
Post by: batka on 16.02.2015, Monday, 01:00:25
Изразот * интерференција* е лоша форма 8).Најверојатно инструментот ти е неисправен или погрешно мериш! Види дали си на AC /DC подрачје и да не од таму иде грешката? Ако треба мери со друг инструмент. Можеби и батеријата на инструментот е на крај!
Title: Одг: Помош со PIR сензор
Post by: DS on 16.02.2015, Monday, 01:13:59
Изразот * интерференција* е лоша форма 8).

Индукција* :)

баш ке пробам со друг инструмент :)