Prezado Denis, boa noite! Em primeiro lugar quero olhe agradecer pelo comentário aqui no canal, muito obrigado! Pois é rapaz, nosso canal é pequenino, mas o pessoal é muito bacana por aqui. Hahahaha fico feliz que tenha gostado! Grande abraço!
@@Codificados excelente didática a sua professor. Estou pós-graduando em sistemas embarcados e te afirmo que seu conteúdo, metodologia, didática e domínio da materia são esplendidos.
@@deniselectron9424 Prezado Denis, boa tarde! Puxa, fico lisonjeado com seu comentário, muitíssimo obrigado. O senhor já é um profissional extremamente gabaritado, uma honra tê-lo como parceiro aqui do canal. Só por curiosidade, só conheço pós em embarcados aqui no Senai SP e em Curitiba na Positivo. Onde está cursando? Mais uma vez obrigado pela participação aqui conosco. Grande abraço!
@@Codificados não há o que agradecer professor, divulguei seu canal para meus colegas simpáticos a eletrônica. No mundo acadêmico encontrar um professor que te conduza e transmita conhecimento é que vira a balança. Vide os comentários aí do pessoal. Bom, eu curso a especialização em sistemas embarcados pela Faculdade SENAI "Anchieta", Vila Mariana-SP.
Oi Francisco, muito obrigado pelo elogio, fico feliz que o senhor tenha gostado. Caso tenha interesse, o convido para se inscrever em nosso canal. Obrigado!
Prezado Flávio, boa noite!! Ô lôco kkkkkkk. Embora seja um exagero, agradeço muito pelo seu elogio, fico lisonjeado! Muito obrigado pela sua participação! Grande abraço!
Prezado Valter Erreira, boa noite! Muito obrigado pelo elogio, fico muito feliz em saber que o material atendeu suas expectativas! Caso tenha interesse, se inscreva em nosso canal e continue nos acompanhando. Obrigado!
Muito obrigado Jonathan! Valeu pelo comentário e participação aqui no canal. Caso tenha interesse o convido a se inscrever em nosso canal e continuar nos acompanhando! Bons estudos e até breve!
Prezado Daniel, boa tarde! Puxa que bacana, fico feliz em saber que gostou. Muito obrigado pelo comentário. Caso tenha interesse, aproveito para convidá-lo a se inscrever em nosso canal e continuar nos acompanhando. Mais uma vez obrigado!
Prezado Rômulo, boa noite! Nossa, muito obrigado. Fico lisonjeado com seu comentário, agradeço muito! Rômulo, irei te contar uma novidade em primeira mão kkkkk, estamos trabalhando no desenvolvimento de uma nova plataforma online. Esta nova plataforma trará muitas novidades, novos cursos, inscrições online, treinamentos regulares EAD, kits didáticos e muito mais! Teremos muitas novidades para o início do próximo semestre!! Acredito que o senhor vai gostar! Caso tenha interesse, se inscreva em nosso canal e continue nos acompanhando. Grande abraço!
Prezado Josimar, boa tarde!! Obrigado pelo elogio, fico lisonjeado. Agradeço também pela sua participação! Aproveito para convidá-lo a se inscrever em nosso canal e continuar nos acompanhando. Obrigado!
Prezado Josemar, bom dia! Fico feliz que tenha gostado. Eu que agradeço o seu comentário. Aproveito para convidá-lo a se inscrever em nosso canal para continuar nos acompanhando. Novamente obrigado!
Prezado Paulo, boa tarde! Muito obrigado pela participação. Fico lisonjeado com o comentário! Caso o senhor tenha interesse, aproveito para convidá-lo a se inscrever em nosso canal e continuar nos acompanhando. Novidades virão no segundo semestre, espero que goste!!! Obrigado!
Prezado Glaucio, bom dia! Obrigado pelo elogio, fico feliz que tenha gostado e o agradeço pela participação! Caso tenha interesse, aproveito para convidá-lo a se inscrever em nosso canal e continuar nos acompanhando! Mais uma vez obrigado!
Grande Márcio, boa tarde!!! Como sempre muito simpático e positivo em seus comentários! Nós gostaríamos de lhe agradecer pela participação! Aproveito para lhe desejar um feliz 2019! Grande abraço!
Prezado Antônio, boa noite! Muito obrigado pelo elogio, fico lisonjeado. Infelizmente estamos com o tempo um pouco apertado ultimamente, mas muito em breve retomaremos com os vídeos. Caso tenha interesse, se inscreva em nosso canal e continue nos acompanhando. Obrigado!
Prezado Josefancisco Francisco, boa noite! Muito obrigado pelo elogio, fico feliz que tenha gostado. Aproveito para convidá-lo a se inscrever em nosso canal e continuar nos acompanhando. Obrigado!
Prezado Alexandre, boa tarde! Primeiramente obrigado pelo elogio! Pode deixar, já nas próximas semanas iremos publicar um novo material. Caso tenha interesse, se inscreva em nosso canal e continue nos acompanhando. Obrigado!
Obrigado! Jesus abençoe pela sabedoria. Eu vou comprar um gravador de PIC estou com dúvidas. Estou pensando no pickit3 mais não sei se é boa ideia. Para quem quer desenvolver projetos iniciais.
Prezado Paulo Sergio, bom dia! Sem dúvidas o pickit3 é uma excelente opção. Entretanto, se fosse para eu indicar algum gravador para seu perfil, eu indicaria o PicKit2-clone. Além de ser extremamente simples de usar (e não precisar de software adicional, pois é reconhecido diretamente pelo MPLAB), é mais barato!! A grande maioria dos meus alunos utilizam o PicKit2-clone (desde curso técnico até a pós graduação). Abraços.
Prezado Gilberto, boa noite! Obrigado pelo comentário! Caso tenha interesse, aproveito para convidá-lo para se inscrever em nosso canal e continuar nos acompanhando. Obrigado!
Prezado Copel Peças, boa tarde! Primeiramente obrigado pelo elogio! Aproveito para convidá-lo, caso o senhor tenha interesse, a se inscrever em nosso canal e continuar nos acompanhando. Novamente obrigado!
Oi número zero, boa noite! Puxa, que legal saber que o vídeo lhe ajudou. Muito obrigado pela sua mensagem e participação aqui no canal. Bons estudos e até breve!
ótima aula, vai me ajudar muito!!! vou usar botão num projeto da faculdade, mas preciso tb fazer a leitura do tempo de sinal nas outras entradas, em ms, e adicionar um tempo para saída, e nao faço ideia ainda de como fazer, poderia me "dar uma luz" rsrs agradeço muito!!!
Oi Guh, bom dia! Para trabalhar com "leitura de tempo" de um sinal, recomendo o uso do timer. Dê uma olhadinha aqui no canal que nós disponibilizamos 3 aulas sobre esse tema, onde procuramos explicar no detalhe como utilizá-lo. Espero que o ajude! Bons estudos e até breve!
Olá pessoal, boa tarde! mais uma vez quero agradecer pela atenção à mim dispensada. Continuando com minhas duvidas, cheguei a uma conclusão, meu problema é com o MPLAB, pois eu consegui criar o arquivo .hex rodando direto no CCS. Onde foi que eu errei? Desejo saber se você tem um curso online. Um curso mais completo, como todo mundo diz, você nasceu para ensinar. PARABÉNS!
Prezado João, boa tarde! Pois é, logo após suas respostas pudemos perceber que o compilador CCS está OK. O senhor tem toda razão, o problema é realmente no MPLAB, Na verdade o linker do MPLAB deve encontrar a biblioteca a qual o senhor incluiu na primeira linha de seu código (#include), e me parece que ele não a está encontrando. Essa e as outras bibliotecas referentes aos PIC's encontram-se dentro da pasta "device". A pasta "device" é instalada automaticamente dentro da pasta da Microchip, no momento da instalação do MPLAB. O que pode estar acontecendo: 1-) O diretório de instalação foi alterado (pode ter acontecido durante a instalação) e não pode ser encontrado como referencia padrão; 2-) A pasta device foi corrompida (diversos motivos podem ter ocasionado: particionamento de HD, durante a instalação, um arquivo deletado acidentalmente, auto recuperação do windows, vírus...). Para tentar solucionar o problema, sugiro desinstalar o MPLAB atual e instalá-lo novamente (se possível, no diretório padrão sugerido automaticamente, normalmente em C://Arquivos de programas X86// Microchip...). Tente e nos avise se deu certo. Não desista, essa fase inicial é assim mesmo, logo logo verás que valeu a pena ter persistido! Com relação ao curso online, temos sim! Essa é uma informação em primeira mão!! O novo portal está em desenvolvimento e dentro de poucas semanas estará no ar! Esse novo portal terá arquivos para download, área exclusiva para os alunos, portal de dúvidas, vídeo aulas de maior qualidade, lista de exercícios e área de discussão com o professor, está ficando muito bacana! Mas ainda não temos data exata de lançamento. Entretanto, publicaremos um vídeo de inauguração promocional assim que estivermos com a data marcada. Como dito antes, penso que em poucas semanas (4 ou 5) já tenhamos a data para lançamento. Caso o senhor tenha condições de aguardar o nosso lançamento, tenho certeza que não irá se arrepender! Para nós, seria uma honra poder tê-lo como nosso aluno. Espero ter ajudado! Até logo!
Professor consegui do jeitinho que eu queria, pois está funcionando perfeitamente ! Para zerar o int press = xx, USEI O press = press - xx ! Isto EVITA que eu fique decrementando com o botão até chegar a zero ! Gostei muito da sua aula, no momento estou com o projeto de melodia, mas vi que a programação só pra gerar a melodia é muito grotesco, quando o professor postar um vídeo de melodia básica tipo DÓ, RE, MI, FÁ, .... gostaria muito de assistir o vídeo pra saber se realmente é grotesco ou é algo bem simples ! Obrigado !
Prezado Saia da Sombra, boa noite! Sim sim, este PIC é um microcontrolador comercial que pode ser facilmente comprado. Sim também, é possível gravar o programa no PIC e posteriormente inseri-lo em uma PCB. Aliás, esse é um procedimento comum que realizamos rotineiramente nessa área. Caso tenha interesse, aproveito para convidá-lo a se inscrever em nosso canal e continuar nos acompanhando. Grande abraço!
@@Codificados que top. Professor tem como vc fazer um curso básico ensinando passo a passo. Estou cursando ADS e estou estudando linguagem C. Iria ajudar muito.
@@kaiorodrigo4231 boa noite! Fico feliz que tenha gostado do vídeo. Temos o curso passo a passo de programação em C#. O de C para microcontroladores nós precisamos parar de gravar pois estamos reformando o estúdio. Bons estudos e até breve!
Prezado Frank, boa noite! Primeiramente obrigado pelo comentário!! Sim é possível, entretanto, para trabalhar com rotinas temporais é mais interessante trabalhar com timers (já estamos em processo de gravação de aulas sobre timers também)... Mas caso queira fazer com delay, pode fazer algo assim: - crie uma variável que irá incrementar seu valor sempre que um botão for pressionado. - utilize essa variável em um contador do tipo "for", que irá repetir o delay de acordo com o valor da variável. Em código, ficaria mais ou menos assim: if(!input(botao)){ //quando o botão for pressionado... var ++; //incrementa a variável "var".... for(i=var; i>=0; i--){ //i recebe var. Enquanto for > que 0, decrementa i... delay_ms(100); //esse delay irá se repetir de acordo com o valor de var. } } Evidente que este não é o único método...Mas é o primeiro que pude imaginar com delay. Porém, volto a afirmar, ao se trabalhar com rotinas temporais o mais adequado é a utilização de timers. Bom, espero que tenha ajudado! Boa sorte em seus projetos! Aproveito para convidá-lo a se inscrever em nosso canal e continuar nos acompanhando. Obrigado!
Prezado Antônio, boa tarde! Sim, funciona. Mas na verdade não depende da IDE e sim do compilador, ou seja, qualquer versão do MPLAB será compatível, contanto que esteja utilizando o compilador C da CCS. Espero que tenha ajudado. Grande abraço!
Ótimo conteúdo. Muito bem explicado passo a passo. Fico com uma pergunta. Qual seria a velocidade de varredura do loop infinito? Seria os 4Mhz/4 , ou seja 1MHz?
Prezado Estudante Elétrico, boa noite! Nem um nem outro. O PIC trabalha com arquitetura Harvard, o que faz com que a frequência interna seja a frequência externa dividida por 4 (pipeline). Logo, se utilizar um oscilador externo de 4MHz, a frequência interna será de 1MHz. Através desta frequência, é possível determinar o período de um ciclo de máquina (tempo gasto para execução de uma instrução simples). Porém, cada instrução gasta 1, 2 ou mais ciclos de máquina. Como seu "loop infinito" é composto de "n" instruções, não é possível determinar quanto tempo será gasto para sua varredura sem analisar seu código. Entretanto, esse tempo de varredura pode ser determinado de uma maneira mais simples do que analisando e contando ciclos de máquina manualmente. Existe uma ferramenta dentro do próprio MPLAB (no modo debug) que se chama StopWatch. Inserindo um breakpoint no início e outro no fim do seu loop, mande rodar o debug e perceberá que a tela do StopWatch exibirá o tempo gasto para execução total de seu loop. Essa ferramente é bastante interessante! Quem sabe não façamos um vídeo futuro explicando detalhadamente sua utilização. Espero que tenha ajudado! Até logo.
Olá, seus vídeos estão me ajudando muito a entender o PIC, obrigado! Porem me deparei com uma dúvida, se puder me responda: Com relação as portas analógicas, (( Como faço para configurar "escolher" a resolução analógica 8bit=256 ou 10bit=1024 ))?
Prezado Marcos, boa noite! Fico feliz em saber que o material está lhe ajudando a progredir. Em breve publicaremos aulas sobre conversão AD. Caso tenha interesse, aproveito para lhe convidar a se inscrever em nosso canal e continuar nos acompanhando. Sobre sua dúvida: Depende de qual compilador e qual PIC está utilizando. Considerando que esteja utilizando o compilador CCS e um pic 18F4520, por exemplo, logo abaixo da primeira linha (#include), insira a seguinte diretiva: #device adc = 8 //para trabalhar em 8 bits. Ou #device adc = 10 //para trabalhar em 10 bits. Bom, por hora é isso, espero que tenha ajudado. Boa sorte e até logo!
Prezado Marcos, bom dia! Claro, passo o e-mail sem problemas entretanto, só respondemos propostas comerciais.Não respondemos dúvidas por e-mail pois acreditamos ser um egoísmo. A sua dúvida pode ser a de outros e publicada aqui, pode ajudar outras pessoas. Tem mais, as vezes pode ser que outro colega veja e responda também, lhe oferecendo dois pontos de vista diferentes. A ideia do canal é ser colaborativo, é de ajudar para que os interessados consigam desenvolver seus próprios projetos. Caso queira aulas particulares ou o desenvolvimento por nossa conta, nós fazemos com o maior prazer, mas aí será preciso negociar com o departamento específico e por isso temos um e-mail de contato, pois a negociação, que envolve valores, é de interesse particular e não público. Torno a frisar que não encorajamos essa solução e sim o seu próprio aprendizado e desenvolvimento. Agora, caso queira "acelerar" alguma etapa, pode sim solicitar nossos serviços. No mais, optamos por responder através de nosso canal no RUclips mesmo. Tenho certeza que irá nos entender, não nos leve a mal. Estou certo de vossa compreensão. Caso ainda tenha interesse: ricardohovacker@hotmail.com Obrigado.
Olá Profº, queria desenvolver um projeto q funcionasse dessa forma: funcionar com um botão de liga e desl q ao ligar led ficam piscando de forma lenta ao som de um bip durante o pisca, tb 2 botões de pressão um prá esq e outra prá dir , e um display q nela possa criar simbolos animados ou figuras como bandeiras ou escudos de times q fosse alimentado com bat tipo moeda ou akela pilha pequenina de 12v e caber em uma caixihna q mede 8cm x 5cm com 0,8mm de altura, poderia dar uma idéia sobre isso, por favor?
Prezado Neto, boa noite! Seu projeto é bem interessante e bastante simples, apenas com as aulas aqui do canal o senhor conseguiria fazê-lo sem dificuldades. A única ressalva é com relação aos "símbolos animados" que o senhor citou. Nesse caso, sugiro um display gráfico, que é mais caro e infelizmente ainda não temos vídeo aulas gravadas sobre o controle de displays gráficos, mas em breve lançaremos. De resto é tranquilo! Caso tenha interesse, o convido a se inscrever em nosso canal e continuar nos acompanhando. Muito obrigado e bons projetos!
@@netoguimaraes7083 Boa tarde! O site está fora do ar pois estamos reformulando a plataforma, teremos uma sala virtual e um ambiente preparado para cursos online. Em breve teremos novidades!! O curso acontecerá online mas também ofertamos na modalidade presencial na cidade de São Paulo-SP.
Amigo fiz um código que ele manda um pulso para a base do transistor BC 337 void LigaBomba() { output_bit(BOMBA, TRUE); //delay_ms(tempo*1000); delay_ms(5000); output_bit(BOMBA, FALSE); } Só que ele liga e desliga o relé na mesma hora, ele nao continua a mandar o pulso na base. Pode me ajudar?
Prezado Rafael, bom dia! Faltam muitas informações em seu código para que possamos analisar corretamente. Não sei quem está chamando essa função LigaBomba (que pode estar em uma condição errada de lógica... NÃO estou falando que seu código está errado. Estou falando que não sei se existe algum erro de lógica por só estar vendo um trecho, OK?!). Mas enfim, como um teste para sua verificação, sugiro alterar a função LigaBomba para: void ligaBomba(){ output_high(BOMBA); delay_ms(5000); output_low(BOMBA); delay_ms(1000); } Considerando que toda a lógica de seu código (a qual não analisei) esteja certa, ao acessar a função ligaBomba, seu transistor ficará saturado por 5 segundos e logo após, entrará em corte por 1 segundo. Faça o teste e depois comente aqui! Espero ter ajudado. Boa sorte! Caso tenha interesse, aproveito para convidá-lo a se inscrever e nosso canal e continuar nos acompanhando. Obrigado!
Prezado Carlos, boa noite! Está vendo uma coluna cinza, imediatamente antes de onde eu inicio a digitar o código? Lá onde ficam os números das linhas, bem a esquerda de onde começamos a digitar o código... Pois bem, clique nessa área cinza com o botão direito do mouse. Deve abrir uma lista com algumas opções onde a última é "Properties...". Clique sobre ela... Agora uma nova janela irá se abrir, basta selecionar a aba "Text" e então clicar sobre o botão "Select Font". Agora poderá alterar a fonte, o tamanho da letra e demais características de exibição e formatação de seu código! Espero ter ajudado. Caso tenha interesse, o convido a se inscrever em nosso canal e continuar nos acompanhando. Obrigado!
Boa noite professor! Gostaria de saber se no momento a sua aula está no n° 7, ou estou perdendo alguma ? A sua aula é realmente bacana, quando tiver tempo vou estudar a parte do display ! Professor só me diz uma coisa do meu projeto, quando aperto o botão executa uma função de dois tons que se repete como se tivesse dentro do while(true), gostaria de saber se é possível sair da função no primeiro tom na hora que aperto o botão, pois só consigo sair da função só depois que acaba o segundo, se eu perco a chance de apertar na hora do segundo o siclo se repete novamente tendo que aguardar a função ! EX: DÓ, RÉ aperto o botão e muda de função, pois queria mudar de função na hora que tivesse dando o DÓ ! Não teria algum tipo de comando no botão que desse em tempo real, ou seja, o botão ficar de guarda a eternidade até que a pressione em vez de ficar aguardando alguma coisa finalizar a função ? Aguardo a resposta, Grato !
Prezado Ultra Tiger, boa noite! Sim, publicamos até a aula 7, mas muito em breve publicaremos novas aulas. Com relação ao problema citado, essa característica é apresentada por conta do uso da instrução de delay. E sim, é possível resolver isso e monitorar um botão em "tempo real" (termo que o sr. utilizou). Existem algumas formas de se fazer isso, normalmente utilizamos interrupções ou, principalmente, o TIMER... Mas este é assunto de uma próxima aula. Aguarde que em breve teremos novo material exatamente sobre esse tema!
Boa noite professor, fiquei com uma dúvida: depois do código "if" vc escreveu qualquer coisa dps apagou, no meu caso usando o lcd, oque eu escrever onde vc apagou, sairá no lcd ?
Oi Airton, boa tarde! Mais ou menos... Agora que o senhor já entendeu como funciona o if, o senhor deve copiar todo o código que mostramos passo a passo na aula do display LCD. E dentro daquele código, incluir um if para poder ler uma entrada digital (botão). Por fim, dentro do if, o senhor irá colocar as duas instruções que aprendeu na aula de LCD, a LCDComando e a LCDTexto. Agora basta escrever uma nova mensagem na função LCDTexto que sua mensagem será exibida no display sempre que o botão for pressionado. Tente aí e me avise se deu certo! Bons projeto!!
@@Codificados boa noite, entendi professor vou fazer !, pode ser que demore um pouco, p/ finalizar o projeto , mais de algum jeito vou te mostrar a placa e a aplicação usada. Parabéns! Obrigado
Olá, eu estou engatinhando na eletrônica embora tenha uma boa noção de lógica de programação, porém não entendi como foi que esses LEDs acendem um após o outro já que vc só colocou output e a variável Dado. Em output ja existe esse código que faz essa soma? Pq a referência é so pin_b mas não diz qual pino exatamente.
Prezado Chokikaya, boa noite! Permita-me antes esclarecer alguns pontos: Basicamente "Port" é um registrador que controla os pinos do microcontrolador. Entretanto, como os registradores tem apenas 8 bits (evidentemente que estou considerando os microcontroladores de 8 bits), cada registrador pode controlar até 8 pinos. Logo, um PIC com 16 pinos de I/Os teria 2 "Ports" (8 + 8), um denominado A e outro denominado B. Claro que existem PICs com mais pinos e consequentemente mais "Ports". Outro ponto importante a se destacar é a relação do número de bits com o valor equivalente em decimal. Sabe-se que um bit assume 2 combinações possíveis (1 ou 0), 2 bits assumem 4 combinações possíveis, 3 bits assumem 8 combinações possíveis...Logo, 8 bits assumem 256 combinações diferentes! Bem, dito isto, vamos a sua resposta: Quando utilizamos a instrução output_b estamos controlando o Port B inteiro de uma única vez!!! Mais precisamente estamos informando ao processador que iremos enviar algo para as saídas do portB. Essas saídas são os pinos B0, B1, B2, B3, B4, B5, B6 e B7 e o que será enviado é o parâmetro passado pela função output`b, no caso do exemplo a variável dado. O funcionamento é bastante elementar, veja: Ao chamar a função output_b(dado), estamos dizendo que todos os pinos do portB irão receber o valor da variável dado. A variável dado é um inteiro (8 bits) e o portB tem 8 pinos (também 8 bits), logo para cada valor da variável dado teremos uma combinação equivalente nos pinos do portB. Exemplos para melhor entendimento: Sendo assim, quando a variável dado está valendo 0 os pinos do portB devem exibir o valor equivalente a zero em binário. Para tal, todos os pinos ficam em nível lógico baixo para representarem zero em binário! Quando a variável dado está valendo 255, todos os pinos do portB deve ir para nível lógico alto, para representar o valor equivalente a 255 em binário. Já quando o valor da variável dado for 3, apenas os pinos B0 e B1 devem ir para nível alto e os demais para nível baixo, representando assim o valor 3 equivalente em binário da variável dado. Evidentemente que para se ter um bom entendimento deste conceito o senhor deve conhecer o mínimo de informática básica/programação básica/eletrônica digital básica (estados lógicos, bits, bytes, números binários e conversões numéricas). Caso tenha dificuldade nestes assuntos nos avise que tentaremos explicar em mais detalhes. Outro exemplo: Imagine que neste instante a variável dado está valendo 10. Desta maneira, considere os pinos do portb abaixo: B0 B1 B2 B3 B4 B5 B6 B7 Como os pinos deveriam estar para representar esse valor 10 da variável dado???? RESPOSTA: B0 = 0 B1 = 1 B2 = 0 B3 = 1 B4 = 0 B5 = 0 B6 = 0 B7 = 0 Pronto, perceba que se nós tivermos um LED conectado a cada um dos pinos do portB acima, quando a variável dado estiver valendo 10, os LEDs conectados aos pinos B1 e B3 estariam acesos (1) enquanto os demais estariam apagados (0). Lembre-se: A variável armazena os valores "em decimal", enquanto sua representação do PortB acontecerá em binário! Espero que tenha ajudado! Caso tenha interesse, o convido a se inscrever em nosso canal e continuar nos acompanhando. Muito obrigado!
Prezado Valter Erreira, boa noite!! Não, o curso tem previsão de 20 aulas, no mínimo. Se os colegas gostarem, aumentaremos o número... Claro, iremos trabalhar com timer 0 sim, inclusive essa aula já está gravada, só falta editar! Peço desculpas pela demora, é que trabalho e estudo tomam muito nosso tempo. Mas garanto que, muito em breve, teremos novas aulas no canal e timer 0, com certeza, será uma delas!! Agradeço muito por acompanhar o nosso canal! Até logo!
@@Codificados professor suas aulas são excelentemente mais aulas por favor. Uma pergunta seu quiser controlar um scr no caso um dimmer e associar o brilho da lâmpada com o acendimento dos Leds como poderia fazer? Vc tem whatsapp, ou outro canal de comunicação
@@Codificados professor suas aulas são excelentemente mais aulas por favor. Uma pergunta seu quiser controlar um scr no caso um dimmer e associar o brilho da lâmpada com o acendimento dos Leds como poderia fazer? Vc tem whatsapp, ou outro canal de comunicação
Oi Andreia, boa noite! Primeiramente obrigado pelo elogio, fico lisonjeado e muito agradecido! Não entendi bem o que quis dizer com "controlar o SCR de um dimmer". Ao invés de "controlar" o SCR de um dimmer com a própria rede AC, está pretendendo fazer o controle digital?? Se for isso, existem algumas maneiras...Irei tentar dizer algumas de forma genérica para ver se lhe inspiram alguma ideia: 1-) Pode utilizar um potenciômetro duplo, onde em uma escala controlaria o disparo do gate em AC e na outra escala do potenciômetro alimente com DC do próprio PIC e colete uma amostra dessa tensão em um pino analógico. De acordo com o valor analógico lido (equivalente a 0 à 5V), saberá qual o angulo de disparo e consequentemente poderá atrelar alguns leds de sinalização. 2-) Montar (eletronicamente) um detector de zero para identificar o "cruzamento" AC da senoide e essa detecção é enviada em forma de pulso para o PIC. Quando o PIC recebe esse pulso ele observa qual o valor o potenciômetro está ajustado. De acordo com a posição do potenciômetro um valor correspondente analógico será convertido para digital (por meio do canal AD). Caso opte por trabalhar com um AD de 8 bits, terá 255 combinações diferentes (256-1). Cada combinação estará associada a um tempo de disparo definido em programação. Esse tempo será responsável pelo disparo no gate do SCR e consequente defasagem. Como o PIC já estará fazendo o processamento do disparo, pode associar esse mesmo valor (de 0 à 255) aos LEDs que pretende utilizar para monitoramento. Bom, creio que existem outras formas, mas essas foram as mais didáticas que consegui pensar nesse momento. Espero que lhe ajude em seu projeto. Agora, caso você já tenha uma solução, diferente das que eu sugeri, e só tem interesse na implementação, poste aqui para que possamos tentar ajudar! Sim sim, temos outros canais de comunicação. Entretanto, por hora estamos optando por tirar dúvidas sempre por aqui, pois assim podemos compartilhar informações, sem restringir a apenas duas pessoas. Porém, muito em breve iremos lançar o novo site com treinamentos online em plataforma dedicada, onde teremos um grupo no whatsapp a todos interessados em discussões e tópicos relacionados, com bastante interação e novidades. Está convidadíssima. Espero vê-la por lá!!! Caso tenha interesse, fique atenta ao canal que muito em breve iremos anunciar a data de lançamento! Novamente lhe agradeço pela participação e a convido para se inscrever em nosso canal e continuar nos acompanhando! Até breve!
Prezado Lucas, boa tarde! O MPLAB é oferecido gratuitamente pela Microchip enquanto que o CCS é pago. Entretanto, existe uma versão para testes, completa, válida por 30 dias. Se quiser mais informações a respeito, sugiro que acesse o site www.modozero.com e veja os artigos sobre programação, no primeiro artigo nós falamos bastante sobre isso. Caso tenha interesse, se inscreva em nosso canal e continue nos acompanhando. Até logo!
vou tirar mas uma duvida , não sei se há videos sobre no seu canal, se houver me informe.Tentei reproduzir o pisca led da mesma forma que o seu,ctrl c+ ctrl v , o MPLAB não reconheceu o include do pic e por consequêcia, acho , ele não reconheu nenhuma das outras variaveis, Obrigado pela atenção . Vou me inscrever no canal pois acabei criando interesse pelo assunto.
Prezado Lucas, boa noite! Bom, vamos lá, primeiramente é importante perceber que existem algumas opções que fariam com que seu código não fosse compilado (ou que algum parâmetro não fosse reconhecido). Para tentar resolver seu problema, certifique-se de: - Ter instalado o compilador CCS corretamente; - Ter criado um projeto no MPLAB, através do "project wizard" e indicado o CCS como compilador; - Após a criação do projeto, abrir um arquivo, escrever o código e adicionar o arquivo na pasta "Source Files"; - Certificar-se de que o arquivo foi salvo com a extensão .c do tipo "c source files"; - Antes de compilar, através do MPLAB, clique na aba "Configure/Select Device..." e verifique se o pic selecionado no campo "Device:" é o mesmo que consta no seu include; Caso nenhuma das informações lhe ajude, peço que copie e cole a mensagem (mensagem de erro) que aparece na janela de output para tentarmos resolver de outra maneira. Espero que ajude! Abraços.
Prezado Renan, boa tarde! Muito interessante a sua pergunta... Esse realmente é um conceito complexo para ser explicado via mensagem, mas vou tentar: - Primeiramente é importante saber que, a nível de processamento TUDO será binário, sendo assim, não importa se a variável é char, int, bool, long... Será processada sempre no formato binário. O tipo da variável, basicamente, determinará qual/quais operações poderão ser feitas durante o seu desenvolvimento de código e quais "espaços" de memória irão utilizar (áreas distintas são destinadas para tipos de variáveis diferentes). - Outro fator fundamental é conhecer o hardware do microcontrolador!! Esse microcontrolador adotado no vídeo é um microcontrolador de 8 bits. Sendo assim, seus registradores são de 8 bits!!! Logo, o port é de 8 bits (Port, em uma explicação bem elementar, é o registrador responsável por colocar um nível lógico em um pino configurado como saída). - Sabendo dessas premissas, vamos ao esclarecimento de sua dúvida: A variável int (utilizamos "int" por ser apropriada para armazenar números de até 8 bits, mas poderia ser uma "char", por exemplo, só não seria evidente/apropriada)... ...Continuando: ...A variável "int" contém um valor de até 8 bits sem sinal (de 0 à 255). Quando esse valor é enviado para o PORT (registrador de 8 bits), o próprio PORT precisa colocar esse valor nele mesmo!! Como fazer isso???!!! A resposta é simples: - Se o valor da variável, de 0 a 255, é composto por 8 bits e o PORT é de 8 bits, é só colocar um bit de cada posição da variável em um bit de cada posição do PORT. Exemplo 1: int dado = 0; Sabemos que tem zero na variável dado, mas sabemos que, como ela é uma variável de 8 bits, esse zero na realidade está armazenado como 00000000 (zero em binário...em 8 bits!). E como o PORT tem 8 pinos, ele receberá o bit 0 em cada um dos pinos!!! Exemplo 2: int dado = 10; Sabemos que tem 10 na variável dado, mas, de acordo com o discutido acima, esse 10 está armazenado como 00001010 (dez em binário...em 8 bits!!). E como o PORT tem 8 bits, os bits 1 e 3 serão acionados (bit 0 o mais à direita e 7 o mais à esquerda)! RESUMINDO: Desta forma, pode perceber que, independentemente do valor da variável dado (0 à 255), o registrador PORT sempre irá distribuir um bit da variável para cada pino do port. E o resultado disso, não poderia ser diferente, uma vez que estamos trabalhando com bits unitários, a resposta só pode ser em binário! Bom, como disse no início, isso seria bem simples de explicar com uma ilustração, mas assim por escrito, eu não sei se consegui lhe responder com clareza. Espero que tenha ajudado. Qualquer coisa torne a perguntar que tento lhe esclarecer melhor. Aproveito para convidá-lo a se inscrever em nosso canal e continuar nos acompanhando. Muito obrigado!
Prezado Glaucio, boa noite. Simples, faça o teste e veja o resultado...Perceberá que a variável irá "estourar". Sendo do tipo inteira, sem sinal, irá para 255 ou inteira, com sinal, irá para -127. O tratamento dessas variáveis pode ser realizado de diversas formas, a mais simples seria assim: if(dado
Top!
nossa, como fui descobrir esse canal só hoje???
Já estou viciado.
Prezado Denis, boa noite!
Em primeiro lugar quero olhe agradecer pelo comentário aqui no canal, muito obrigado!
Pois é rapaz, nosso canal é pequenino, mas o pessoal é muito bacana por aqui.
Hahahaha fico feliz que tenha gostado!
Grande abraço!
@@Codificados excelente didática a sua professor.
Estou pós-graduando em sistemas embarcados e te afirmo que seu conteúdo, metodologia, didática e domínio da materia são esplendidos.
@@deniselectron9424 Prezado Denis, boa tarde!
Puxa, fico lisonjeado com seu comentário, muitíssimo obrigado.
O senhor já é um profissional extremamente gabaritado, uma honra tê-lo como parceiro aqui do canal.
Só por curiosidade, só conheço pós em embarcados aqui no Senai SP e em Curitiba na Positivo. Onde está cursando?
Mais uma vez obrigado pela participação aqui conosco.
Grande abraço!
@@Codificados não há o que agradecer professor, divulguei seu canal para meus colegas simpáticos a eletrônica. No mundo acadêmico encontrar um professor que te conduza e transmita conhecimento é que vira a balança. Vide os comentários aí do pessoal.
Bom, eu curso a especialização em sistemas embarcados pela Faculdade SENAI "Anchieta", Vila Mariana-SP.
Top demais
Parabéns, professor!super legal!
Oi Francisco, muito obrigado pelo elogio, fico feliz que o senhor tenha gostado.
Caso tenha interesse, o convido para se inscrever em nosso canal. Obrigado!
Excelente aula! Parabéns! O assunto " microcontrolador " começa a ficar bem fácil de ser entendido. Obrigado!
Oi Dirceu, boa noite!
Eu que agradeço pela sua participação e comentário. Fico feliz que tenha gostado do conteúdo!
Bons estudos e até breve!
muito bem. moro na paraíba.
aula muito boa.
Eu que agradeço sua participação!
AS melhores explicação do RUclips,PARABENS.
Prezado Flávio, boa noite!!
Ô lôco kkkkkkk. Embora seja um exagero, agradeço muito pelo seu elogio, fico lisonjeado!
Muito obrigado pela sua participação!
Grande abraço!
excepcional. Parabéns!
Obrigado!!! Pretendemos retomar algumas séries. Caso tenha interesse, o convido a se inscrever em nosso canal e continuar nos acompanhando.
Até breve!
Cara voce é 10 pra ensinar
parabéns aprendi mesmo!
Prezado Valter Erreira, boa noite!
Muito obrigado pelo elogio, fico muito feliz em saber que o material atendeu suas expectativas!
Caso tenha interesse, se inscreva em nosso canal e continue nos acompanhando. Obrigado!
Muito bom!
Aula maravilhosa!
Muito obrigado Jonathan! Valeu pelo comentário e participação aqui no canal.
Caso tenha interesse o convido a se inscrever em nosso canal e continuar nos acompanhando!
Bons estudos e até breve!
Suas explicações são bem facil de entender.Gostei muito das suas aulas.
Prezado Daniel, boa tarde!
Puxa que bacana, fico feliz em saber que gostou. Muito obrigado pelo comentário.
Caso tenha interesse, aproveito para convidá-lo a se inscrever em nosso canal e continuar nos acompanhando.
Mais uma vez obrigado!
Cara não para por ai não você tem que criar um curso online, porque você é um otimo professor. obrigado
Prezado Rômulo, boa noite!
Nossa, muito obrigado. Fico lisonjeado com seu comentário, agradeço muito!
Rômulo, irei te contar uma novidade em primeira mão kkkkk, estamos trabalhando no desenvolvimento de uma nova plataforma online. Esta nova plataforma trará muitas novidades, novos cursos, inscrições online, treinamentos regulares EAD, kits didáticos e muito mais! Teremos muitas novidades para o início do próximo semestre!! Acredito que o senhor vai gostar!
Caso tenha interesse, se inscreva em nosso canal e continue nos acompanhando.
Grande abraço!
...muito obrigado pela dica. Continuarei ligado aqui no canal.
PARABÉNS DEUS ABENÇOE PODEROSAMENTE .
Prezado Josimar, boa tarde!!
Obrigado pelo elogio, fico lisonjeado. Agradeço também pela sua participação!
Aproveito para convidá-lo a se inscrever em nosso canal e continuar nos acompanhando. Obrigado!
Aula top!
Parabéns muito bem expricado Deus abençoe
Que legal, fico feliz que tenha gostado.
Caso tenha interesse, o convido a se inscrever em nosso canal para continuar nos acompanhando.
Obrigado!
Beleza de aula.Obrigado pela oportunidade.
Prezado Josemar, bom dia!
Fico feliz que tenha gostado. Eu que agradeço o seu comentário.
Aproveito para convidá-lo a se inscrever em nosso canal para continuar nos acompanhando. Novamente obrigado!
Muito bom! Super fácil de entender! Obrigado por compartilhar conhecimento! Parabéns!
Prezado Paulo, boa tarde!
Muito obrigado pela participação. Fico lisonjeado com o comentário!
Caso o senhor tenha interesse, aproveito para convidá-lo a se inscrever em nosso canal e continuar nos acompanhando. Novidades virão no segundo semestre, espero que goste!!!
Obrigado!
Parabéns pela aula.. Obrigado...
Prezado Glaucio, bom dia! Obrigado pelo elogio, fico feliz que tenha gostado e o agradeço pela participação! Caso tenha interesse, aproveito para convidá-lo a se inscrever em nosso canal e continuar nos acompanhando! Mais uma vez obrigado!
Show muito obrigado por compartilhar conosco seu conhecimento
Ótimo!!!!
Parabéns, achei o máximo essa aula!
Grande Márcio, boa tarde!!!
Como sempre muito simpático e positivo em seus comentários! Nós gostaríamos de lhe agradecer pela participação!
Aproveito para lhe desejar um feliz 2019!
Grande abraço!
gostei,muito bem explicado passo a passa obrigado.......
Prezado Antônio, boa noite!
Muito obrigado pelo elogio, fico lisonjeado. Infelizmente estamos com o tempo um pouco apertado ultimamente, mas muito em breve retomaremos com os vídeos. Caso tenha interesse, se inscreva em nosso canal e continue nos acompanhando. Obrigado!
ótima aula professor, parabéns !!!
vlw..teacher ; Super aula
vc ensina muito bem!
Prezado Josefancisco Francisco, boa noite!
Muito obrigado pelo elogio, fico feliz que tenha gostado.
Aproveito para convidá-lo a se inscrever em nosso canal e continuar nos acompanhando. Obrigado!
+ show de bola man vc explica bem
Boa tarde Silva Charles! Que bom, fico muito feliz que tenha gostado! Espero poder continuar contribuindo. Novamente agradeço sua participação.
parabens e aguardo mais aulas
Prezado Alexandre, boa tarde!
Primeiramente obrigado pelo elogio! Pode deixar, já nas próximas semanas iremos publicar um novo material. Caso tenha interesse, se inscreva em nosso canal e continue nos acompanhando. Obrigado!
Ótima aula!!
Já me inscrevi.
Obrigado!
Humildade de ensino.
Prezado Paulo Sérgio, boa dia!
Muito obrigado. Espero que lhe esteja sendo útil.
Grande abraço.
Obrigado! Jesus abençoe pela sabedoria.
Eu vou comprar um gravador de PIC estou com dúvidas. Estou pensando no pickit3 mais não sei se é boa ideia. Para quem quer desenvolver projetos iniciais.
Sou novo na programação mais sou formado técnico em eletrônica. E o PIC é as portas para abranger meu conhecimento.
Prezado Paulo Sergio, bom dia! Sem dúvidas o pickit3 é uma excelente opção. Entretanto, se fosse para eu indicar algum gravador para seu perfil, eu indicaria o PicKit2-clone. Além de ser extremamente simples de usar (e não precisar de software adicional, pois é reconhecido diretamente pelo MPLAB), é mais barato!! A grande maioria dos meus alunos utilizam o PicKit2-clone (desde curso técnico até a pós graduação). Abraços.
Bem elaborado
Prezado Gilberto, boa noite!
Obrigado pelo comentário!
Caso tenha interesse, aproveito para convidá-lo para se inscrever em nosso canal e continuar nos acompanhando. Obrigado!
Excelente!!
Obrigado!
Prezado Copel Peças, boa tarde!
Primeiramente obrigado pelo elogio!
Aproveito para convidá-lo, caso o senhor tenha interesse, a se inscrever em nosso canal e continuar nos acompanhando.
Novamente obrigado!
pode fazer um vídeo sobre entrada analogica no pic 16f628 usando o delta/sigma e o compilador em ccs?
muito bom mano. eu tentei acompanhar o tutorial do wrkits, mas prefiro a sua didatica
Oi número zero, boa noite! Puxa, que legal saber que o vídeo lhe ajudou. Muito obrigado pela sua mensagem e participação aqui no canal.
Bons estudos e até breve!
ótima aula, vai me ajudar muito!!! vou usar botão num projeto da faculdade, mas preciso tb fazer a leitura do tempo de sinal nas outras entradas, em ms, e adicionar um tempo para saída, e nao faço ideia ainda de como fazer, poderia me "dar uma luz" rsrs agradeço muito!!!
Oi Guh, bom dia!
Para trabalhar com "leitura de tempo" de um sinal, recomendo o uso do timer.
Dê uma olhadinha aqui no canal que nós disponibilizamos 3 aulas sobre esse tema, onde procuramos explicar no detalhe como utilizá-lo.
Espero que o ajude!
Bons estudos e até breve!
Olá pessoal, boa tarde!
mais uma vez quero agradecer pela atenção à mim dispensada.
Continuando com minhas duvidas, cheguei a uma conclusão, meu problema é com o MPLAB, pois eu consegui criar o arquivo .hex rodando direto no CCS.
Onde foi que eu errei?
Desejo saber se você tem um curso online. Um curso mais completo, como todo mundo diz, você nasceu para ensinar.
PARABÉNS!
Prezado João, boa tarde!
Pois é, logo após suas respostas pudemos perceber que o compilador CCS está OK. O senhor tem toda razão, o problema é realmente no MPLAB, Na verdade o linker do MPLAB deve encontrar a biblioteca a qual o senhor incluiu na primeira linha de seu código (#include), e me parece que ele não a está encontrando.
Essa e as outras bibliotecas referentes aos PIC's encontram-se dentro da pasta "device". A pasta "device" é instalada automaticamente dentro da pasta da Microchip, no momento da instalação do MPLAB. O que pode estar acontecendo:
1-) O diretório de instalação foi alterado (pode ter acontecido durante a instalação) e não pode ser encontrado como referencia padrão;
2-) A pasta device foi corrompida (diversos motivos podem ter ocasionado: particionamento de HD, durante a instalação, um arquivo deletado acidentalmente, auto recuperação do windows, vírus...).
Para tentar solucionar o problema, sugiro desinstalar o MPLAB atual e instalá-lo novamente (se possível, no diretório padrão sugerido automaticamente, normalmente em C://Arquivos de programas X86// Microchip...).
Tente e nos avise se deu certo. Não desista, essa fase inicial é assim mesmo, logo logo verás que valeu a pena ter persistido!
Com relação ao curso online, temos sim! Essa é uma informação em primeira mão!! O novo portal está em desenvolvimento e dentro de poucas semanas estará no ar! Esse novo portal terá arquivos para download, área exclusiva para os alunos, portal de dúvidas, vídeo aulas de maior qualidade, lista de exercícios e área de discussão com o professor, está ficando muito bacana! Mas ainda não temos data exata de lançamento. Entretanto, publicaremos um vídeo de inauguração promocional assim que estivermos com a data marcada. Como dito antes, penso que em poucas semanas (4 ou 5) já tenhamos a data para lançamento. Caso o senhor tenha condições de aguardar o nosso lançamento, tenho certeza que não irá se arrepender! Para nós, seria uma honra poder tê-lo como nosso aluno.
Espero ter ajudado!
Até logo!
Professor consegui do jeitinho que eu queria, pois está funcionando perfeitamente !
Para zerar o int press = xx, USEI O press = press - xx !
Isto EVITA que eu fique decrementando com o botão até chegar a zero !
Gostei muito da sua aula, no momento estou com o projeto de melodia, mas vi que a programação só pra gerar a melodia
é muito grotesco, quando o professor postar um vídeo de melodia básica tipo DÓ, RE, MI, FÁ, ....
gostaria muito de assistir o vídeo pra saber se realmente é grotesco ou é algo bem simples !
Obrigado !
Parabéns por ter conseguido resolver seu problema!! Já está ficando fera em programação!
Grato!
Montei este circuito ai !
Valeu pelo video professor, dá pra chavear um inversor de frequencia com esses micro ?
Oi Paulo, bom dia! Tudo bem?
Sim sim, recomendo apenas utilizar um driver, de preferência com optoacoplador.
Parabens! Vc é otimo! Existe esse pic para comprar? E possivel salvar no proprio pic e fazer em uma placa PCB?
Prezado Saia da Sombra, boa noite!
Sim sim, este PIC é um microcontrolador comercial que pode ser facilmente comprado.
Sim também, é possível gravar o programa no PIC e posteriormente inseri-lo em uma PCB. Aliás, esse é um procedimento comum que realizamos rotineiramente nessa área.
Caso tenha interesse, aproveito para convidá-lo a se inscrever em nosso canal e continuar nos acompanhando.
Grande abraço!
@@Codificados que top. Professor tem como vc fazer um curso básico ensinando passo a passo. Estou cursando ADS e estou estudando linguagem C. Iria ajudar muito.
@@kaiorodrigo4231 boa noite! Fico feliz que tenha gostado do vídeo. Temos o curso passo a passo de programação em C#. O de C para microcontroladores nós precisamos parar de gravar pois estamos reformando o estúdio.
Bons estudos e até breve!
Parabéns pelo o curso professor! É possível modificar tempo da função delay via botoes? Poderia dar uma dica?
Prezado Frank, boa noite!
Primeiramente obrigado pelo comentário!!
Sim é possível, entretanto, para trabalhar com rotinas temporais é mais interessante trabalhar com timers (já estamos em processo de gravação de aulas sobre timers também)...
Mas caso queira fazer com delay, pode fazer algo assim:
- crie uma variável que irá incrementar seu valor sempre que um botão for pressionado.
- utilize essa variável em um contador do tipo "for", que irá repetir o delay de acordo com o valor da variável.
Em código, ficaria mais ou menos assim:
if(!input(botao)){ //quando o botão for pressionado...
var ++; //incrementa a variável "var"....
for(i=var; i>=0; i--){ //i recebe var. Enquanto for > que 0, decrementa i...
delay_ms(100); //esse delay irá se repetir de acordo com o valor de var.
}
}
Evidente que este não é o único método...Mas é o primeiro que pude imaginar com delay.
Porém, volto a afirmar, ao se trabalhar com rotinas temporais o mais adequado é a utilização de timers.
Bom, espero que tenha ajudado! Boa sorte em seus projetos!
Aproveito para convidá-lo a se inscrever em nosso canal e continuar nos acompanhando. Obrigado!
👍
boa tarde, por gentileza, poderia me dizer como eu defino esse output para c18? obrigado
Muuuuito bom Estes comandos funcionam no Mplab X ?
Prezado Antônio, boa tarde!
Sim, funciona. Mas na verdade não depende da IDE e sim do compilador, ou seja, qualquer versão do MPLAB será compatível, contanto que esteja utilizando o compilador C da CCS.
Espero que tenha ajudado.
Grande abraço!
OI ESTÁ TUDO MUITO BOM !! GOSTARIA DE SABER ONDE ESTÁ O PIC !! PARA PROGRAMAR .
Oi sr. Gene, acho que acabei de responder essa sua dúvida no comentário do outro vídeo.
Dê uma olhadinha. Espero ter ajudado.
Bons estudos!!
Ótimo conteúdo. Muito bem explicado passo a passo. Fico com uma pergunta. Qual seria a velocidade de varredura do loop infinito? Seria os 4Mhz/4 , ou seja 1MHz?
Prezado Estudante Elétrico, boa noite!
Nem um nem outro.
O PIC trabalha com arquitetura Harvard, o que faz com que a frequência interna seja a frequência externa dividida por 4 (pipeline). Logo, se utilizar um oscilador externo de 4MHz, a frequência interna será de 1MHz. Através desta frequência, é possível determinar o período de um ciclo de máquina (tempo gasto para execução de uma instrução simples). Porém, cada instrução gasta 1, 2 ou mais ciclos de máquina. Como seu "loop infinito" é composto de "n" instruções, não é possível determinar quanto tempo será gasto para sua varredura sem analisar seu código. Entretanto, esse tempo de varredura pode ser determinado de uma maneira mais simples do que analisando e contando ciclos de máquina manualmente. Existe uma ferramenta dentro do próprio MPLAB (no modo debug) que se chama StopWatch. Inserindo um breakpoint no início e outro no fim do seu loop, mande rodar o debug e perceberá que a tela do StopWatch exibirá o tempo gasto para execução total de seu loop. Essa ferramente é bastante interessante! Quem sabe não façamos um vídeo futuro explicando detalhadamente sua utilização.
Espero que tenha ajudado!
Até logo.
Valeu pela ótima explicação. Sempre bem técnica e de clara explanação.
Boa noite professor posso usar dentro de uma função, esse pragrama
Oi Vilson, boa noite!
Sim sim, pode criar uma função para implementar as leituras das entradas sim, claro!
Olá, seus vídeos estão me ajudando muito a entender o PIC, obrigado! Porem me deparei com uma dúvida, se puder me responda: Com relação as portas analógicas,
(( Como faço para configurar "escolher" a resolução analógica 8bit=256 ou 10bit=1024 ))?
Prezado Marcos, boa noite! Fico feliz em saber que o material está lhe ajudando a progredir. Em breve publicaremos aulas sobre conversão AD. Caso tenha interesse, aproveito para lhe convidar a se inscrever em nosso canal e continuar nos acompanhando.
Sobre sua dúvida: Depende de qual compilador e qual PIC está utilizando. Considerando que esteja utilizando o compilador CCS e um pic 18F4520, por exemplo, logo abaixo da primeira linha (#include), insira a seguinte diretiva:
#device adc = 8 //para trabalhar em 8 bits.
Ou
#device adc = 10 //para trabalhar em 10 bits.
Bom, por hora é isso, espero que tenha ajudado.
Boa sorte e até logo!
Acabei de me inscrever! Vlw, obrigado ai pela atenção...!
→ Olá, tem como você me passar teu e-mail ? ? ? ←☺
Prezado Marcos, bom dia!
Claro, passo o e-mail sem problemas entretanto, só respondemos propostas comerciais.Não respondemos dúvidas por e-mail pois acreditamos ser um egoísmo. A sua dúvida pode ser a de outros e publicada aqui, pode ajudar outras pessoas. Tem mais, as vezes pode ser que outro colega veja e responda também, lhe oferecendo dois pontos de vista diferentes. A ideia do canal é ser colaborativo, é de ajudar para que os interessados consigam desenvolver seus próprios projetos.
Caso queira aulas particulares ou o desenvolvimento por nossa conta, nós fazemos com o maior prazer, mas aí será preciso negociar com o departamento específico e por isso temos um e-mail de contato, pois a negociação, que envolve valores, é de interesse particular e não público.
Torno a frisar que não encorajamos essa solução e sim o seu próprio aprendizado e desenvolvimento. Agora, caso queira "acelerar" alguma etapa, pode sim solicitar nossos serviços.
No mais, optamos por responder através de nosso canal no RUclips mesmo.
Tenho certeza que irá nos entender, não nos leve a mal. Estou certo de vossa compreensão.
Caso ainda tenha interesse: ricardohovacker@hotmail.com
Obrigado.
Alguém tem o software da plataforma multipic e multiprog para pic?
Olá Profº, queria desenvolver um projeto q funcionasse dessa forma: funcionar com um botão de liga e desl q ao ligar led ficam piscando de forma lenta ao som de um bip durante o pisca, tb 2 botões de pressão um prá esq e outra prá dir , e um display q nela possa criar simbolos animados ou figuras como bandeiras ou escudos de times q fosse alimentado com bat tipo moeda ou akela pilha pequenina de 12v e caber em uma caixihna q mede 8cm x 5cm com 0,8mm de altura, poderia dar uma idéia sobre isso, por favor?
Prezado Neto, boa noite!
Seu projeto é bem interessante e bastante simples, apenas com as aulas aqui do canal o senhor conseguiria fazê-lo sem dificuldades. A única ressalva é com relação aos "símbolos animados" que o senhor citou. Nesse caso, sugiro um display gráfico, que é mais caro e infelizmente ainda não temos vídeo aulas gravadas sobre o controle de displays gráficos, mas em breve lançaremos. De resto é tranquilo!
Caso tenha interesse, o convido a se inscrever em nosso canal e continuar nos acompanhando. Muito obrigado e bons projetos!
@@Codificados Obrigado por responder, já tentei acessar o site mas dá erro, tem como mostrar como funciona o curso se é presencial ou não?
@@netoguimaraes7083 Boa tarde!
O site está fora do ar pois estamos reformulando a plataforma, teremos uma sala virtual e um ambiente preparado para cursos online. Em breve teremos novidades!! O curso acontecerá online mas também ofertamos na modalidade presencial na cidade de São Paulo-SP.
Amigo fiz um código que ele manda um pulso para a base do transistor BC 337
void LigaBomba()
{
output_bit(BOMBA, TRUE);
//delay_ms(tempo*1000);
delay_ms(5000);
output_bit(BOMBA, FALSE);
}
Só que ele liga e desliga o relé na mesma hora, ele nao continua a mandar o pulso na base.
Pode me ajudar?
Prezado Rafael, bom dia!
Faltam muitas informações em seu código para que possamos analisar corretamente. Não sei quem está chamando essa função LigaBomba (que pode estar em uma condição errada de lógica... NÃO estou falando que seu código está errado. Estou falando que não sei se existe algum erro de lógica por só estar vendo um trecho, OK?!).
Mas enfim, como um teste para sua verificação, sugiro alterar a função LigaBomba para:
void ligaBomba(){
output_high(BOMBA);
delay_ms(5000);
output_low(BOMBA);
delay_ms(1000);
}
Considerando que toda a lógica de seu código (a qual não analisei) esteja certa, ao acessar a função ligaBomba, seu transistor ficará saturado por 5 segundos e logo após, entrará em corte por 1 segundo.
Faça o teste e depois comente aqui!
Espero ter ajudado. Boa sorte!
Caso tenha interesse, aproveito para convidá-lo a se inscrever e nosso canal e continuar nos acompanhando. Obrigado!
AMIGO COMO VC FAZ PARA ALETRA FICAR GRANDE ASIM
Prezado Carlos, boa noite!
Está vendo uma coluna cinza, imediatamente antes de onde eu inicio a digitar o código? Lá onde ficam os números das linhas, bem a esquerda de onde começamos a digitar o código...
Pois bem, clique nessa área cinza com o botão direito do mouse.
Deve abrir uma lista com algumas opções onde a última é "Properties...". Clique sobre ela...
Agora uma nova janela irá se abrir, basta selecionar a aba "Text" e então clicar sobre o botão "Select Font".
Agora poderá alterar a fonte, o tamanho da letra e demais características de exibição e formatação de seu código!
Espero ter ajudado.
Caso tenha interesse, o convido a se inscrever em nosso canal e continuar nos acompanhando. Obrigado!
Boa noite professor! Gostaria de saber se no momento a sua aula está no n° 7, ou estou perdendo alguma ?
A sua aula é realmente bacana, quando tiver tempo vou estudar a parte do display !
Professor só me diz uma coisa do meu projeto, quando aperto o botão executa uma função de dois tons que se repete como se tivesse dentro do while(true), gostaria de saber se é possível sair da função no primeiro tom na hora que aperto o botão, pois só consigo sair da função só depois que acaba o segundo, se eu perco a chance de apertar na hora do segundo o siclo se repete novamente tendo que aguardar a função ! EX: DÓ, RÉ aperto o botão e muda de função, pois queria mudar de função na hora que tivesse dando o DÓ ! Não teria algum tipo de comando no botão que desse em tempo real, ou seja, o botão ficar de guarda a eternidade até que a pressione em vez de ficar aguardando alguma coisa finalizar a função ?
Aguardo a resposta, Grato !
Prezado Ultra Tiger, boa noite! Sim, publicamos até a aula 7, mas muito em breve publicaremos novas aulas.
Com relação ao problema citado, essa característica é apresentada por conta do uso da instrução de delay. E sim, é possível resolver isso e monitorar um botão em "tempo real" (termo que o sr. utilizou). Existem algumas formas de se fazer isso, normalmente utilizamos interrupções ou, principalmente, o TIMER... Mas este é assunto de uma próxima aula.
Aguarde que em breve teremos novo material exatamente sobre esse tema!
Obrigado !
Boa noite professor, fiquei com uma dúvida: depois do código "if" vc escreveu qualquer coisa dps apagou, no meu caso usando o lcd, oque eu escrever onde vc apagou, sairá no lcd ?
Oi Airton, boa tarde!
Mais ou menos...
Agora que o senhor já entendeu como funciona o if, o senhor deve copiar todo o código que mostramos passo a passo na aula do display LCD. E dentro daquele código, incluir um if para poder ler uma entrada digital (botão).
Por fim, dentro do if, o senhor irá colocar as duas instruções que aprendeu na aula de LCD, a LCDComando e a LCDTexto.
Agora basta escrever uma nova mensagem na função LCDTexto que sua mensagem será exibida no display sempre que o botão for pressionado.
Tente aí e me avise se deu certo!
Bons projeto!!
@@Codificados boa noite, entendi professor vou fazer !, pode ser que demore um pouco, p/ finalizar o projeto , mais de algum jeito vou te mostrar a placa e a aplicação usada. Parabéns!
Obrigado
@@Codificadosboa tarde professor, tudo bem, aqui no LCD consegui escrever mensagens normal, mais quando aperto botão não muda msg, as vezes muda sozinho, fiquei em dúvida onde escrevia o código "IF". Pode me Ajudar ? Obrigado
Segue o Código:
#include
#fuses hs, nowdt
# use delay (clock=4M)
/*
#include
#define LCD_ENABLE_PIN PIN_B2
#define LCD_RS_PIN PIN_B0
#define LCD_RW_PIN PIN_B1
#define LCD_DATA4 PIN_B4
#define LCD_DATA5 PIN_B5
#define LCD_DATA6 PIN_B6
#define LCD_DATA7 PIN_B7
#define botao PIN_a0
*/
#include
void main(){
set_tris_d(0);
lcd_init();
while(TRUE){
lcd_gotoxy (1,1);
printf(lcd_putc, "NOME 1");
lcd_gotoxy (1,2);
printf(lcd_putc, "NOME 2");
delay_ms(3000);
lcd_putc("\f");
for (int car = 0;car=1;Car--){
lcd_gotoxy(car,1);
printf(lcd_putc, "NOME 2");
delay_ms(500);
lcd_putc("\f");
if(!input(pin_a0)){
lcd_putc("\f");
delay_ms(20);
lcd_gotoxy (1,1);
printf(lcd_putc, " ACESSO");
lcd_gotoxy (1,2);
printf(lcd_putc, " AUTORIZADO");
delay_ms(2000);
lcd_putc("\f");
delay_ms(5);
lcd_gotoxy (1,1);
printf(lcd_putc, " BEM");
lcd_gotoxy (1,2);
printf(lcd_putc, " VINDO");
delay_ms(2000);
lcd_putc("\f");
delay_ms(10); }
}
}
}
Olá, eu estou engatinhando na eletrônica embora tenha uma boa noção de lógica de programação, porém não entendi como foi que esses LEDs acendem um após o outro já que vc só colocou output e a variável Dado. Em output ja existe esse código que faz essa soma? Pq a referência é so pin_b mas não diz qual pino exatamente.
Output_b*
Prezado Chokikaya, boa noite!
Permita-me antes esclarecer alguns pontos:
Basicamente "Port" é um registrador que controla os pinos do microcontrolador. Entretanto, como os registradores tem apenas 8 bits (evidentemente que estou considerando os microcontroladores de 8 bits), cada registrador pode controlar até 8 pinos. Logo, um PIC com 16 pinos de I/Os teria 2 "Ports" (8 + 8), um denominado A e outro denominado B. Claro que existem PICs com mais pinos e consequentemente mais "Ports".
Outro ponto importante a se destacar é a relação do número de bits com o valor equivalente em decimal. Sabe-se que um bit assume 2 combinações possíveis (1 ou 0), 2 bits assumem 4 combinações possíveis, 3 bits assumem 8 combinações possíveis...Logo, 8 bits assumem 256 combinações diferentes!
Bem, dito isto, vamos a sua resposta:
Quando utilizamos a instrução output_b estamos controlando o Port B inteiro de uma única vez!!! Mais precisamente estamos informando ao processador que iremos enviar algo para as saídas do portB. Essas saídas são os pinos B0, B1, B2, B3, B4, B5, B6 e B7 e o que será enviado é o parâmetro passado pela função output`b, no caso do exemplo a variável dado.
O funcionamento é bastante elementar, veja:
Ao chamar a função output_b(dado), estamos dizendo que todos os pinos do portB irão receber o valor da variável dado. A variável dado é um inteiro (8 bits) e o portB tem 8 pinos (também 8 bits), logo para cada valor da variável dado teremos uma combinação equivalente nos pinos do portB.
Exemplos para melhor entendimento:
Sendo assim, quando a variável dado está valendo 0 os pinos do portB devem exibir o valor equivalente a zero em binário. Para tal, todos os pinos ficam em nível lógico baixo para representarem zero em binário!
Quando a variável dado está valendo 255, todos os pinos do portB deve ir para nível lógico alto, para representar o valor equivalente a 255 em binário. Já quando o valor da variável dado for 3, apenas os pinos B0 e B1 devem ir para nível alto e os demais para nível baixo, representando assim o valor 3 equivalente em binário da variável dado.
Evidentemente que para se ter um bom entendimento deste conceito o senhor deve conhecer o mínimo de informática básica/programação básica/eletrônica digital básica (estados lógicos, bits, bytes, números binários e conversões numéricas). Caso tenha dificuldade nestes assuntos nos avise que tentaremos explicar em mais detalhes.
Outro exemplo:
Imagine que neste instante a variável dado está valendo 10.
Desta maneira, considere os pinos do portb abaixo:
B0
B1
B2
B3
B4
B5
B6
B7
Como os pinos deveriam estar para representar esse valor 10 da variável dado????
RESPOSTA:
B0 = 0
B1 = 1
B2 = 0
B3 = 1
B4 = 0
B5 = 0
B6 = 0
B7 = 0
Pronto, perceba que se nós tivermos um LED conectado a cada um dos pinos do portB acima, quando a variável dado estiver valendo 10, os LEDs conectados aos pinos B1 e B3 estariam acesos (1) enquanto os demais estariam apagados (0).
Lembre-se: A variável armazena os valores "em decimal", enquanto sua representação do PortB acontecerá em binário!
Espero que tenha ajudado!
Caso tenha interesse, o convido a se inscrever em nosso canal e continuar nos acompanhando. Muito obrigado!
O curso vai só até a aula 7? esse curso esta fora de série estou aguardando aula 8?^
voce vai ensinar timer 0 ?
Prezado Valter Erreira, boa noite!! Não, o curso tem previsão de 20 aulas, no mínimo. Se os colegas gostarem, aumentaremos o número...
Claro, iremos trabalhar com timer 0 sim, inclusive essa aula já está gravada, só falta editar!
Peço desculpas pela demora, é que trabalho e estudo tomam muito nosso tempo. Mas garanto que, muito em breve, teremos novas aulas no canal e timer 0, com certeza, será uma delas!!
Agradeço muito por acompanhar o nosso canal!
Até logo!
@@Codificados professor suas aulas são excelentemente mais aulas por favor. Uma pergunta seu quiser controlar um scr no caso um dimmer e associar o brilho da lâmpada com o acendimento dos Leds como poderia fazer? Vc tem whatsapp, ou outro canal de comunicação
@@Codificados professor suas aulas são excelentemente mais aulas por favor. Uma pergunta seu quiser controlar um scr no caso um dimmer e associar o brilho da lâmpada com o acendimento dos Leds como poderia fazer? Vc tem whatsapp, ou outro canal de comunicação
Oi Andreia, boa noite! Primeiramente obrigado pelo elogio, fico lisonjeado e muito agradecido!
Não entendi bem o que quis dizer com "controlar o SCR de um dimmer".
Ao invés de "controlar" o SCR de um dimmer com a própria rede AC, está pretendendo fazer o controle digital?? Se for isso, existem algumas maneiras...Irei tentar dizer algumas de forma genérica para ver se lhe inspiram alguma ideia:
1-) Pode utilizar um potenciômetro duplo, onde em uma escala controlaria o disparo do gate em AC e na outra escala do potenciômetro alimente com DC do próprio PIC e colete uma amostra dessa tensão em um pino analógico. De acordo com o valor analógico lido (equivalente a 0 à 5V), saberá qual o angulo de disparo e consequentemente poderá atrelar alguns leds de sinalização.
2-) Montar (eletronicamente) um detector de zero para identificar o "cruzamento" AC da senoide e essa detecção é enviada em forma de pulso para o PIC. Quando o PIC recebe esse pulso ele observa qual o valor o potenciômetro está ajustado. De acordo com a posição do potenciômetro um valor correspondente analógico será convertido para digital (por meio do canal AD). Caso opte por trabalhar com um AD de 8 bits, terá 255 combinações diferentes (256-1). Cada combinação estará associada a um tempo de disparo definido em programação. Esse tempo será responsável pelo disparo no gate do SCR e consequente defasagem. Como o PIC já estará fazendo o processamento do disparo, pode associar esse mesmo valor (de 0 à 255) aos LEDs que pretende utilizar para monitoramento.
Bom, creio que existem outras formas, mas essas foram as mais didáticas que consegui pensar nesse momento. Espero que lhe ajude em seu projeto.
Agora, caso você já tenha uma solução, diferente das que eu sugeri, e só tem interesse na implementação, poste aqui para que possamos tentar ajudar!
Sim sim, temos outros canais de comunicação. Entretanto, por hora estamos optando por tirar dúvidas sempre por aqui, pois assim podemos compartilhar informações, sem restringir a apenas duas pessoas. Porém, muito em breve iremos lançar o novo site com treinamentos online em plataforma dedicada, onde teremos um grupo no whatsapp a todos interessados em discussões e tópicos relacionados, com bastante interação e novidades. Está convidadíssima. Espero vê-la por lá!!!
Caso tenha interesse, fique atenta ao canal que muito em breve iremos anunciar a data de lançamento!
Novamente lhe agradeço pela participação e a convido para se inscrever em nosso canal e continuar nos acompanhando! Até breve!
o mplab e o ccs são gratuitos ?
Prezado Lucas, boa tarde! O MPLAB é oferecido gratuitamente pela Microchip enquanto que o CCS é pago. Entretanto, existe uma versão para testes, completa, válida por 30 dias. Se quiser mais informações a respeito, sugiro que acesse o site www.modozero.com e veja os artigos sobre programação, no primeiro artigo nós falamos bastante sobre isso.
Caso tenha interesse, se inscreva em nosso canal e continue nos acompanhando. Até logo!
vou tirar mas uma duvida , não sei se há videos sobre no seu canal, se houver me informe.Tentei reproduzir o pisca led da mesma forma que o seu,ctrl c+ ctrl v , o MPLAB não reconheceu o include do pic e por consequêcia, acho , ele não reconheu nenhuma das outras variaveis, Obrigado pela atenção . Vou me inscrever no canal pois acabei criando interesse pelo assunto.
Prezado Lucas, boa noite!
Bom, vamos lá, primeiramente é importante perceber que existem algumas opções que fariam com que seu código não fosse compilado (ou que algum parâmetro não fosse reconhecido).
Para tentar resolver seu problema, certifique-se de:
- Ter instalado o compilador CCS corretamente;
- Ter criado um projeto no MPLAB, através do "project wizard" e indicado o CCS como compilador;
- Após a criação do projeto, abrir um arquivo, escrever o código e adicionar o arquivo na pasta "Source Files";
- Certificar-se de que o arquivo foi salvo com a extensão .c do tipo "c source files";
- Antes de compilar, através do MPLAB, clique na aba "Configure/Select Device..." e verifique se o pic selecionado no campo "Device:" é o mesmo que consta no seu include;
Caso nenhuma das informações lhe ajude, peço que copie e cole a mensagem (mensagem de erro) que aparece na janela de output para tentarmos resolver de outra maneira.
Espero que ajude!
Abraços.
Mas como que o programa sabe que a variável int é binário?
Prezado Renan, boa tarde!
Muito interessante a sua pergunta... Esse realmente é um conceito complexo para ser explicado via mensagem, mas vou tentar:
- Primeiramente é importante saber que, a nível de processamento TUDO será binário, sendo assim, não importa se a variável é char, int, bool, long... Será processada sempre no formato binário.
O tipo da variável, basicamente, determinará qual/quais operações poderão ser feitas durante o seu desenvolvimento de código e quais "espaços" de memória irão utilizar (áreas distintas são destinadas para tipos de variáveis diferentes).
- Outro fator fundamental é conhecer o hardware do microcontrolador!! Esse microcontrolador adotado no vídeo é um microcontrolador de 8 bits. Sendo assim, seus registradores são de 8 bits!!! Logo, o port é de 8 bits (Port, em uma explicação bem elementar, é o registrador responsável por colocar um nível lógico em um pino configurado como saída).
- Sabendo dessas premissas, vamos ao esclarecimento de sua dúvida:
A variável int (utilizamos "int" por ser apropriada para armazenar números de até 8 bits, mas poderia ser uma "char", por exemplo, só não seria evidente/apropriada)...
...Continuando:
...A variável "int" contém um valor de até 8 bits sem sinal (de 0 à 255). Quando esse valor é enviado para o PORT (registrador de 8 bits), o próprio PORT precisa colocar esse valor nele mesmo!! Como fazer isso???!!!
A resposta é simples:
- Se o valor da variável, de 0 a 255, é composto por 8 bits e o PORT é de 8 bits, é só colocar um bit de cada posição da variável em um bit de cada posição do PORT.
Exemplo 1:
int dado = 0;
Sabemos que tem zero na variável dado, mas sabemos que, como ela é uma variável de 8 bits, esse zero na realidade está armazenado como 00000000 (zero em binário...em 8 bits!). E como o PORT tem 8 pinos, ele receberá o bit 0 em cada um dos pinos!!!
Exemplo 2:
int dado = 10;
Sabemos que tem 10 na variável dado, mas, de acordo com o discutido acima, esse 10 está armazenado como 00001010 (dez em binário...em 8 bits!!). E como o PORT tem 8 bits, os bits 1 e 3 serão acionados (bit 0 o mais à direita e 7 o mais à esquerda)!
RESUMINDO:
Desta forma, pode perceber que, independentemente do valor da variável dado (0 à 255), o registrador PORT sempre irá distribuir um bit da variável para cada pino do port. E o resultado disso, não poderia ser diferente, uma vez que estamos trabalhando com bits unitários, a resposta só pode ser em binário!
Bom, como disse no início, isso seria bem simples de explicar com uma ilustração, mas assim por escrito, eu não sei se consegui lhe responder com clareza.
Espero que tenha ajudado.
Qualquer coisa torne a perguntar que tento lhe esclarecer melhor.
Aproveito para convidá-lo a se inscrever em nosso canal e continuar nos acompanhando. Muito obrigado!
boa noite amigo tentei faze esse pisca led , mais não certo!!!!!!
Oi Vilson, boa tarde!
Rapaz, só com essa informação fica impossível saber qual o problema. Especifique melhor para que possamos tentar lhe ajudar.
@@Codificados eu estudo eletrônica no Senai Anchieta, o professor, quer que eu fazer um programa pra contar de zero 10 em binário, obrigado
E se já estiver em zero e o menos for apertado?
Prezado Glaucio, boa noite.
Simples, faça o teste e veja o resultado...Perceberá que a variável irá "estourar". Sendo do tipo inteira, sem sinal, irá para 255 ou inteira, com sinal, irá para -127.
O tratamento dessas variáveis pode ser realizado de diversas formas, a mais simples seria assim:
if(dado
Obrigado, quando haverão mais videos?
Prezado Glaucio, boa noite! De microcontroladores PIC já temos 7 aulas postadas. Pretendemos publicar novos vídeos já nas próximas semanas. Abraços.
esse proteus e pago que bosta em