Ir ao conteúdo
  • Cadastre-se

_xyko_

Membros Plenos
  • Total de itens

    5.210
  • Registro em

  • Última visita

  • Qualificações

    0%

Reputação

809

Sobre _xyko_

  • Data de Nascimento 08-01-1966 (52 anos)

Informações gerais

  • Cidade e Estado
    Piracicaba-SP
  • Sexo
    Masculino

Outros

  • Biografia
    Projetista de equip. eletrônicos embargados dedicados.
    Programador ASM, Basic e um pouco de C para AVR.
    Começando programar ARM CORTEX (32bits)
  • Interesses
    Tudo, menos o que não me interessa!
  1. Completando o que o paulo disse, como entrada o que vale é a tensão mínima e máxima no pino, geralmente descrita como VIH e VIL.
  2. Sabes programar os timers? estou colocando aqui um exemplo em ASM que fiz em 2007. Espero que ajude. ;****************************************************** ;******* PROGRAMA DE CONTROLE DE ILUMINAÇÃO ******** ;******* PARA PISCINAS - RGB-W_CONTROL ******* ;******* Francisco B O L - 29/01/2007 ******* ;****************************************************** ; L_D equ p3.2 ;liga/desliga AUT_MAN equ p3.3 ;auto/manual ou tempo/cor PISCA equ p3.4 org 0 reset: ljmp inicio org 0bh ljmp timer0 org 30h ; inicio: mov sp,#68h mov tmod,#11h MOV IE,#0 clr rs0 ;banco 0 clr rs1 ;valores de inicialização MOV P1,#0FH MOV 08H,#0FFH ;PISCA COMEÇA LIGADO mov 09h,#0 ;conta até 100mS mov 0ah,#0 ;inc a cada 100mS mov 0bh,#0 ;inc a cada segundo mov 0fh,#0 ;inc a cada 1mS para contagens diversas mov 30h,#0 ;1 seg obtido através da tabela em 770h mov 31h,#0ffh ;sem piscar mov 32h,#0ffh ;automatico mov r1,#50h ;primeira sequencia ;armazena sequencia na RAM mov dptr,#500h ;endereço tabela sequencia fabrica mov r0,#50h ;armazena tabela na RAM jump0: clr a movc a,@a+dptr cjne a,#0FFh,jump1 mov @r0,a ;indicador de fim sjmp jump2 jump1: mov @r0,a inc dptr inc r0 sjmp jump0 jump2: lcall tempos ;lê o tempo e retorna em r4 ljmp DESLIG LIGADO: mov th0,#0FEh ;reseta contador 1mS mov tl0,#0Ch clr tf0 setb tr0 setb ea setb et0 loopCOM: JB L_D,S01 ;ver se Desliga lcall D200MS ;ver se pulso maior que 200ms jb L_D,S01 ljmp DESLIG S01: jb PISCA,S02 ;ver se pisca lcall D200MS jb PISCA,S02 lcall D200MS LCALL D200MS LCALL D200MS mov a,31h cpl a mov 31h,a S02: jb AUT_MAN,loopCOM ;verifica automatico/manual ou tempo/cor TEMPCOR: MOV A,32H ;INCREMENTA TEMPO OU MUDA COR CJNE A,#0,MUTEM INC R1 ;muda cor MOV A,@R1 CJNE A,#0FFH,DTEM MOV R1,#50H DTEM: LCALL D200MS LCALL D200MS LCALL D200MS LCALL D200MS ljmp loopCOM MUTEM: INC 30H ;muda tempo mov r1,#50h ;reinicia sequencia MOV A,30H ANL A,#07 MOV 30H,A lcall tempos mov 0bh,#0 ;zera contagem CLR TR0 MOV A,30H INC A MOV R2,A INDAU: MOV P1,#0FH ;indica tempo auto em piscadas LOOPIN: LCALL DEL_300 MOV P1,#0FFH LCALL DEL_200 MOV P1,#0FH DJNZ R2,INDAU LCALL DEL_500 SETB TR0 LJMP loopCOM DESLIG: MOV IE,0 clr tr0 clr tf0 MOV P1,#0FH lcall DEL_500 lcall DEL_500 lcall DEL_500 loodes: MOV P1,#0FH jb L_D,loodes_1 mov 32h,#0ffh ;se ligado através do botão esquerdo, automático mov p1,#1fh lcall del_500 mov p1,#2fh lcall del_500 mov p1,#4fh lcall del_500 mov p1,#8fh lcall del_500 mov p1,#0fh lcall del_500 mov r1,#50h ;primeira cor ljmp LIGADO loodes_1: MOV P1,#15d jb AUT_MAN,loodes mov p1,#0ffh lcall del_500 lcall del_500 lcall del_500 mov 32h,#00 ;se ligado através do botão meio, parado ljmp ligado tempos: mov dptr,#530h ;tabela de tempos mov a,30h anl a,#07 movc a,@a+dptr mov r4,a ret del_300: mov 1DH,#6d ;6 x 50mS DEL3: mov th1,#9Eh ;contador 50mS = 65536-25000=40536d=9E58h mov tl1,#58h setb tr1 jnb tf1,$ clr tr1 clr tf1 djnz 1DH,DEL3 ret del_500: mov 1DH,#10d ;10 x 50mS DEL: mov th1,#9Eh ;contador 50mS = 65536-25000=40536d=9E58h mov tl1,#58h setb tr1 jnb tf1,$ clr tr1 clr tf1 djnz 1DH,DEL ret DEL_200: mov 1DH,#4d ;delay 200ms com int desligada DEL2: mov th1,#9Eh ;contador 50mS mov tl1,#58h setb tr1 jnb tf1,$ clr tr1 clr tf1 djnz 1DH,DEL2 ret D200MS: mov 0fh,#0 ;delay 200ms com interrupção ligada mov a,#200d cjne a,0fh,$ ret org 300h timer0: mov th0,#0Feh ;reseta contador 1mS = 500x2uS --> 65536-500=65036=FE0Ch mov tl0,#0ch clr tf0 setb tr0 push psw push a push dph push dpl inc 0fh ;atrasos diversos incrementado a cada 1ms inc 09 mov a,09 cjne a,#100d,retin mov 09,#0 mov a,08 cpl a mov 08,a mov a,32h ;ver se parado cjne a,#0ffh,retin inc 0ah ;inc a cada 100mS mov a,0ah cjne a,#10d,retin mov 0ah,#0 inc 0Bh mov a,r4 cjne a,0bh,retin ;0b=r3 no banco 1 mov 0BH,#0 inc r1 ;muda sequencia mov a,@r1 cjne a,#0ffh,retin mov r1,#50h retin: mov a,31h orl a,08 ;08=pisca JNZ MOVR1 MOV P1,#0FH SJMP RETIN1 MOVR1: MOV A,@R1 ORL A,#0FH mov p1,a RETIN1: pop dpl pop dph pop a pop psw ;restaura banco e status reti org 500h db 01000000b db 01100000b db 00100000b db 00110000b db 00010000b db 01010000b db 01110000b db 10000000b db 11000000b db 11100000b db 10100000b db 10110000b db 10010000b db 11010000b db 11110000b db 11100000b db 11000000b db 0ffh ;fim org 530h db 1,5,10d,30d,60d,120d,180d,240d ;tempos
  3. Até dá, mas no circuito do @mateus7 Não tem o esquema do relê na saída. Colocou diodo de proteção e qual o relê, ou a corrente da bobina? Segundo o site abaixo e alguns datasheets de relês, deveria funcionar. https://www.robocore.net/loja/produtos/rele.html Ultima infirmação a esquerda: 200mA.
  4. Se o colega NoelJC fizer o schmitt, tudo bem.
  5. Jamais sem o capacitor ou sem os resistores, como bem disse são para limitar a corrente em no máximo uns 20mA. Só que no caso de 200K vai obter entre 2 e 3mA. Vou repetir o que disse antes, use a saída no coletor e emissor ao GND. Transistores em coletor comum não são bons para entradas digitais. adicionado 1 minuto depois Sim... em CA... mas eu costumo exagerar na segurança. É que meu circuito ficava quase que 24h ligado As TVs Mitsubishi antigas fazia o mesmo, onde precisava de 0,5W, usava 2W....kkkk
  6. Assim provavelmente vai ter uma forma de onda na saída e não pulsos. Repito, 2 resistores de 100K na entrada é muito alto.
  7. Basta o circuito até o optoacoplador com um resistor de pull-up de 4K7 no coletor do transistor interno. Saída é no coletor, claro! O emissor é ligado ao GND. Pra melhorar, no lugar do diodo de proteção em paralelo com o led interno eu ligaria outro led pra monitorar a C.A. No lugar do resistor de 200K (que na minha opinião é muito alta) eu usaria um capacitor de 100nF x 400V, assim não haverá aquecimento deste resistor série que deveria ser de 22K x 3W (22Kohm * 0,01A * 0,01A = 2,2W). O capacitor de 100nF vai ter uma reatância capacitiva de ~26Kohm em 60Hz [ 1/ (2 * PI * f * C) ]. Onde C = 0,0000001F. Já uso circuito assim em paralelo com um interruptor há mais de 5 anos sem problema e ele acende toda vez que apago a luz, ou abre-se o interruptor, assim nunca prco o interruptor no escuro... adicionado 1 minuto depois @Isadora Ferraz Ops... enquanto postava eu tava editando o meu.
  8. Amigo, sempre coloque o que deseja no tópico. Alguém tem o código, é muito genérico e pouco interessa pra quem pode ajudar. adicionado 6 minutos depois Fácil... Pergunta pro Matheus ou Ana. Assombrado.com adicionado 7 minutos depois São José do Rio Preto - SP
  9. Quando eu estava no 2o grau, me falaram que pra fazer um cap. de 1F precisaria de um campo de futebol. Joguei a pergunta para o professor: Se eu juntar 1000 capacitores de 1000uF em paralelo não dá meio metro²... Até hoje ele não respondeu.
  10. http://www.atmel.com/Images/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf Muita coisa pra ler, pior pra entender. a partid da pg 125
  11. Eu nunca te abandoei...meu amigo. Mas as vezes fico nas sombras. Aprendi um pouco (ou +) de C#, C++, e algo mais. Demonstro segundo o que precisarem..

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×