Ir ao conteúdo
  • Cadastre-se

Tutorial : Introdução ao uso de PIC´s em BASIC com o PIC Simulator IDE - Parte 1/2


Posts recomendados

Sim, existe alguns bem simples e baratos, mas usam portas seriais ou paralelas.

voce pode começar por um destes sim, mas eles não programam muitos modelos.

Eu vi um tópico recente aqui no Fórum que continha um esquema bem simples, ok ?

Mas o melhor mesmo é usar o PAItrocinador, sem dúvida heheheheh !

Paulo

Link para o comentário
Compartilhar em outros sites

Ola paulo,

como sou um 'tarado" nato construi tambem aquela placa de Desenvolvimento com pic 16f877a do mesmo cara do PSI, e ja comecei a brincar com o primeiro exemplo do tutorial, que era pra 1 led, eu ja fiz um mini sequencial com 4 leds rodando no pic 16f877a.

Nao e grande coisa , mas pra mim ja e uma vitória, vou continuar brincando com este exemplo.

Ja estou ansioso pra você conseguir os "PGAS" pra gente se divertir.

Se prepare pra muita amolaçao!!!!!!!!!!!hahahahah.

Uma grande abraço

jfeliciano

Ola Tiago,

De uma olhada neste gravador ai:

http://www.instructables.com/id/GTP-USB-PIC-PROGRAMMER-Open-Source/

Eu ja construi um, e da pro gasto, você pode tambem fazer uma busca no site 4shared.com usando o mesmo nome GTP USB , você vai encontrar um monte.

Boa sorte

uma abraço

jfeliciano

Link para o comentário
Compartilhar em outros sites

Tiagod2...

Amigo, estou usando já a cerca de 6 meses o conjunto multiprog e Multipic fabricados pela smartradio (www.smartradio.com.br) .....o que posso dizer é que são de excelente qualidade e o custo relativamente baixo além do suporte muito bom que o pessoal dá. Cheguei a montar um desses open source - tanto o gravador quanto a placa experimental mas terminei comprando um conjunto (programador e placa de testes) prontos.

Paulo;

Realmente amigo...nos testes usei 2 opto acopladores 4N25 para fazer o isolamento eletrico e imagino que deve ser os "bichinhos" hehehe, vou testar novamente seguindo a sua orientação e ir baixando a velocidade e testando - existem outros sinais na porta COM a manusear via soft para conseguir as tensões de +15V e -15V necessárias e já resolvidos, mas não encontrei nada a respeito do uso de optos acopladores. O resultado posto aqui.

Abraços...

IAS

Link para o comentário
Compartilhar em outros sites

Jfeliciano, calma que eu vou trazer algumas peças desse cara, mas vai demorar umas 2 a 3 semanas... mas eles chegam sim !

Pelo menos voce já está fazendo algumas experiências e pegando prática, assim fica cada vez mais fácil !

IAS,

Se voce quiser, voce consegue fácil pegar o +12 e -12 direto da porta serial, bastam alguns diodos e capacitores. Mas eles só devem alimentar o circuito de opto do lado do PC !

Do outro lado, tem de ser alimentado pelo circuito com o PIC via +5V .

Eu vou procurar amanhã no meu escritório, pois está numa coleção da Elektor, aquelas tipo "302 circuits" em diante.

Mas pode baixar o baud que vai resolver sim , se não resolver, diminui o resistor que vai ao LED do opto ok ?

Tiagod,

Esse gravador serve sim, mas veja, voce vai ter de primeiro arrumar o PIC já programado !

Começe por um que não use PIC, tipo aqueles da JDR, que usam o Winprog mesmo.

Um abraço !

Paulo

Link para o comentário
Compartilhar em outros sites

Colega "jfeliciano", acho que vou monta-lo sim . . .

E usa-lo como quebra galho :)

-

Colegas "IAS" e Paulo, valeu pelas dicas!!!

Vou pesquisar bem, vou ver pelas lojas aqui por perto tmb e tal, valeu !!

-

Manim Paulo, dá uma olhada no erro que surgiu quando eu tento configurar o PSI para as simulações:

http://www.youtube.com/watch?v=yhCBz3l68CI]url]

-

Uso Windows 7, 32 Bits, e ja editei o modo de compatibilidade com Windows XP SP3 e marquei a caixa de executar como administrador . . .

Sugere algo?

-

Aguardando, obrigado.

-

-

Tiago.

Link para o comentário
Compartilhar em outros sites

Olá Pessoal,

Aos que se interessarem estou postando um link com projeto de um

osciloscópio duplo traço via USB. É algo bem simples e pode ser útil para estudantes e hobistas.

http://yveslebrac.blogspot.com/2008/10/cheapest-dual-trace-scope-in-galaxy.html

AQUI TEM MAIS

http://www.gabotronics.com/resources/hobbyists-oscilloscopes.htm

Um abraço,

Enio.

Link para o comentário
Compartilhar em outros sites

Olá, me cadastrei só por causa desse tópico rs...

bem, tenho uma dúvida sobre o tutorial.

Na página 6, no projeto 1: pisca-pisca simples é mostrado um circuito, em q opção do PSI eu coloco este circuito?

Parabéns pelo tutorial, consegui aprender bastante, e ainda n to nem na metade ^^

Abraços.

Link para o comentário
Compartilhar em outros sites

Paulo,

Após fazer as configurações:

"• CODE PROTECTION - ON

• POWER-UP TIMER - ENABLED

• WATCHDOG TIMER - DISABLED

• OSCILLATOR SELECTION - XT",

clicar em APPLY e logo após em GENERATE BASIC CODE, depois, TOOLS > BASIC COMPILER, a linha 1 continua sem nda =/

-

Sugere algo?

Aguardando, obrigado.

-

PS: O PIC 16F84 ja está selecionado.

-

-

Tiago.

Link para o comentário
Compartilhar em outros sites

Dai pessoal,

Vou dar meu pitaco

Pk_Zero

Não tem erro tá bem explicadinho olha com bastante calma que tu vai entender.

tiagod2

Você tem que abrir primeiro o basic compiler para depois fazer todo o processo ai quando clicar em "generate base code" ele ira colar no basic compiler que está aberto.

Espero ter ajudado um abraço,

Enio.

Link para o comentário
Compartilhar em outros sites

Opa pessoal, o tópico deu uma aquecida.... legal !!!

Vamos lá :

Savant_rj,

Conseguiu ver o lance das led´s??? Fiquei um tempo afastado do fórum, mas estou de volta...

Eu não entendí o seu programa, mas eu fiz uma rotina de PWM para os AVR, que controla 8 LEDS, mas o princípio deve funcionar igualzinho para os PICs ->

Vamos supor que voce quer para 5 leds, com 16 níveis de intensidade ok ?

Crie 5 variáveis tipo Byte, uma para cada LED,que indicará o nível desejado de brilho, e como queremos apenas 16 estados diferentes de brilho, seu valor terá de ir de 0 até 15 apenas, ok

1 - Crie uma interrupção do timer1, por exemplo, 16000 interrupções por segundo.

1.1 - a cada 16 interrupts, zere todos os contadores da rotina,

2 - Na rotina de interrupção, use um contador para cada um dos Leds, que conte até 16.

3 - incremente todos os contadores a cada interrupt, e compare o valor da contagem com o do brilho de cada um dos Leds. Caso esse contador seja menor ou igual ao do brilho desejado, mude o valor da porta de saída do led, para ele acender. Mas, se o contador for maior, apague o LED !

4 - quando os contadores de interrupts chegarem a 16, zere todos os contadores, e , caso o valor da variável de brilho ser diferente de zero, ligue o LED correspondente. Se a variável de brilho desejado for zero, desligue o led. Agora, tudo vai começar de novo !

Entendeu ? A coisa é mais ou menos assim. Faça a simulação e veja o instante em que os Leds acendem, quanto mais cedo ele acende, maior é o brilho , e quanto mais tarde, menor é, ok ?

Isso é um PWM por software. Eu testei eles com os Avr's e funcionou direitinho no protoboard. Se quiser, eu posto o código dos Avrs, mas está em Basic do Bascom.

PK_zer0 ,

Legal que voce tenha gostado !

Agora, o circuito não é usado no PSI, é apenas para voce entender o hardware e o simulador, e, claro, para voce montar o seu circuito real, entendeu ?

Tchecara,

Obrigado pelo suporte, meu amigo !!!!! estou gostando de ver, voce já está até ajudando os outros com sua experiência ! Muito legal, agora, me fala uma coisa, quando voce leu o tutorial a primeira vez, voce imaginava que em tão pouco tempo estaria fazendo as coisas que voce está fazendo hoje ?????

TiagoD2,

Esse teu Windows , ou tá bichado, ou tá com vírus, ou tá com spyware de monte ..... sinceramente, nunca tive UM problema em rodar o PSI, aliás, até agora, voce foi o único que está com problemas ...

Não perde mais tempo não, reinstala isso tudo ok ?

Um abraço a todos !

Paulo

Link para o comentário
Compartilhar em outros sites

Dai tiago,

Sugestão eu pessoalmente sou apaixonado pelo Windows XP e não troco por nada.

Em meu HD eu tenho 3 partições duas com windows instalado uma pro geral e outro só pra ELETRONICA. Na inicialização eu escolho qual eu quero acessar e assim não misturo as coisas. Na terceira partição eu guardo meus arquivos importantes pois quando dá zebra no sistema eu não arrisco perder todos meus arquivos.

Se você for iniciar do zero seria uma boa oportunidade fazer a partição.

Um abraço,

Enio.

Link para o comentário
Compartilhar em outros sites

Tiagod,

Eu faria tudo do zero, e o que o Tche falou é o mais correto, eu também tenho aqui Windows XP e Windows 7....

Crie uma partição com uns 20 Gb , por exemplo, e deixe o resto do hd sem criar nada.

Aí, voce instala o Windows XP.

Depois, peque o Windows 7, e na hora de instalar, crie uma nova partição no espaço vazio, e pronto, ao terminar voce terá o gerenciador de boot instalado.

Toda vez que ligar, vai aparecer um menú com as duas instalações, voce escolhe qual vai rodar, ok ?

Eu faço isso exatamente para garantir que alguns programas rodem sempre. Por exemplo, tenho alguns jogos que não rodam no Windows 7 de jeito nenhum.....

Savant_rj, segue o código, modifiquei ele para poder aumentar e diminuir os brilhos através de 6 portas, e controla 3 leds, basta dar um rápido toque ao terra nos pinos de entrada e verá os brilhos aumentarem ou diminuírem. Ah, controla 16 níveis de brilho ok ?

PROCESSADOR : ATMEGA8

LINGUAGEM : BASIC BASCOM

$regfile = "m88def.dat"

$crystal = 8000000

Ddrd = &B00000000

Ddrc = &B11111111

Config Portc = Output

Config Portd = Input

Dim Nivel_led1 As Byte

Dim Nivel_led2 As Byte

Dim Nivel_led3 As Byte

Dim V1 As Byte

Dim V2 As Byte

Dim V3 As Byte

Dim Cont1 As Byte

Dim Cont2 As Byte

Dim Cont3 As Byte

Dim Cont As Byte

Dim Preload As Word

Ent_led1_up Alias Pind.0 ' AUMENTA O BRILHO LED 1

Ent_led1_down Alias Pind.1 'DIMINUI BRILHO LED1

Ent_led2_up Alias Pind.2

Ent_led2_down Alias Pind.3

Ent_led3_up Alias Pind.4

Ent_led3_down Alias Pind.5

Led1 Alias Portc.4 ' PORTA ONDE ESTÁ LIGADO O LED1

Led2 Alias Portc.3

Led3 Alias Portc.2

Led_int Alias Portc.1

Set Portd.0 ' LIGA O RESISTOR DE PULL-UP

Set Portd.1

Set Portd.2

Set Portd.3

Set Portd.4

Set Portd.5

Cont = 0

Cont1 = 0

Cont2 = 0

Cont3 = 0

Led1 = 1 'apaga o LED

Led2 = 1

Led3 = 1

Nivel_led1 = 15

Nivel_led2 = 15

Nivel_led3 = 15

Led1 = 1

Led2 = 1

Led3 = 1

Led_int = 1

Preload = 65520

Config Timer1 = Timer , Prescale = 256

On Timer1 Tim1_isr

Enable Timer1

Timer1 = Preload

Enable Interrupts

Inicio:

Debounce Ent_led1_up , 0 , Aumenta1 , Sub

Debounce Ent_led1_down , 0 , Abaixa1 , Sub

Debounce Ent_led2_up , 0 , Aumenta2 , Sub

Debounce Ent_led2_down , 0 , Abaixa2 , Sub

Debounce Ent_led3_up , 0 , Aumenta3 , Sub

Debounce Ent_led3_down , 0 , Abaixa3 , Sub

Waitms 50

Goto Inicio

End

Tim1_isr:

Incr Cont

If Cont > 15 Then

Goto Tim1_finaliza

End If

Incr Cont1

Incr Cont2

Incr Cont3

If Nivel_led1 < Cont1 Then

Goto Tim1_t1

End If

Ct2:

If Nivel_led2 < Cont2 Then

Goto Tim1_t2

End If

Ct3:

If Nivel_led3 < Cont3 Then

Goto Tim1_t3

End If

Ct4:

Timer1 = Preload

Return

Tim1_t1:

Led1 = 0 ' ACENDE O LED

Goto Ct2

Tim1_t2:

Led2 = 0

Goto Ct3

Tim1_t3:

Led3 = 0

Goto Ct4

Tim1_finaliza:

Cont = 0

Cont1 = 0

Cont2 = 0

Cont3 = 0

Led1 = 1

Led2 = 1

Led3 = 1

Goto Ct4

Aumenta1:

If Nivel_led1 < 15 Then

Incr Nivel_led1

End If

Return

Abaixa1:

If Nivel_led1 > 1 Then

Decr Nivel_led1

End If

Return

Aumenta2:

If Nivel_led2 < 15 Then

Incr Nivel_led2

End If

Return

Abaixa2:

If Nivel_led2 > 1 Then

Decr Nivel_led2

End If

Return

Aumenta3:

If Nivel_led3 < 15 Then

Incr Nivel_led3

End If

Return

Abaixa3:

If Nivel_led3 > 1 Then

Decr Nivel_led3

End If

Return

Veja que o truque é feito na interrupção do Timer, ok ?

Um abraço !

Paulo

Link para o comentário
Compartilhar em outros sites

Fala pessoal, aqui eu tava aqui de bobeira e resolvi fazer tipo um letreiro publicitario!

Com um lcd e tal aí simulei e rodou certinho, tô só com medo de tipo se eu fizer de verdade, montar mesmo ele der alguma pala!

Dêêm uma conferiada aí ver se tá certinho?

Lcdcmdout LcdLine1Pos(1)
Lcdout "J.C.S.S.J."
Lcdcmdout LcdClear
Lcdcmdout LcdLine1Pos(2)
Lcdout "J.C.S.S.J."
Lcdcmdout LcdClear
Lcdcmdout LcdLine1Pos(3)
Lcdout "J.C.S.S.J."
Lcdcmdout LcdClear
Lcdcmdout LcdLine1Pos(4)
Lcdout "J.C.S.S.J."
Lcdcmdout LcdClear
Lcdcmdout LcdLine1Pos(5)
Lcdout "J.C.S.S.J."
Lcdcmdout LcdClear
Lcdcmdout LcdLine1Pos(6)
Lcdout "J.C.S.S.J."
Lcdcmdout LcdClear
Lcdcmdout LcdLine1Pos(7)
Lcdout "J.C.S.S.J."
Lcdcmdout LcdClear
Lcdcmdout LcdLine1Pos(8)
Lcdout "J.C.S.S.J."
Lcdcmdout LcdClear
Lcdcmdout LcdLine1Pos(9)
Lcdout "J.C.S.S.J."
Lcdcmdout LcdClear
Lcdcmdout LcdLine1Pos(10)
Lcdout "J.C.S.S.J."
Lcdcmdout LcdClear
Lcdcmdout LcdLine1Pos(11)
Lcdout "J.C.S.S.J."
Lcdcmdout LcdClear
Lcdcmdout LcdLine1Pos(12)
Lcdout "J.C.S.S.J."
Lcdcmdout LcdClear
Lcdcmdout LcdLine1Pos(13)
Lcdout "J.C.S.S.J."
Lcdcmdout LcdClear
Lcdcmdout LcdLine1Pos(14)
Lcdout "J.C.S.S.J."
Lcdcmdout LcdClear
Lcdcmdout LcdLine1Pos(15)
Lcdout "J.C.S.S.J."
Lcdcmdout LcdClear
Lcdcmdout LcdLine1Pos(16)
Lcdout "J.C.S.S.J."
Lcdcmdout LcdClear
End

Abraços

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!