ð CURSO COMPLETO DE ARDUINO: cursodearduino.net/ ⥠LIVRO ELETRÃNICA PARA AUTODIDATAS - GABRIEL TORRES: bit.ly/2VlrL8x ðĶ COMPRE ARDUINO E ACESSÃRIOS EM: www.arducore.com.br/
eu queria q fosse codigo de maquina pura de 0 e 1 ligado e desligado mas o computador ler isso como uma caracter tambem queria saber o codigo de maquina da intel mas o corretor de erro nÃĢo deixa o codigo puro
Caro mestre, Na minha opiniÃĢo nÃĢo trata-se de bug do compilador pois apenas variÃĄveis globais sÃĢo iniciadas com zero. Como a variÃĄvel foi declarada dentro da funçÃĢo loop() sem ser iniciada, conterÃĄ o valor que existir na pilha quando for carregada!!!
O Único bug eh do prÃģprio programa, nÃĢo do arduinos. Se vocÊ acessa uma variÃĄvel local nÃĢo inicializada em linguagem c, o resultado eh indefinido.
Oi Croa. Muito obrigado por participar do canal. Achamos que sim, mas pelos comentÃĄrios, estamos esquentando outras. rsrsrs. Abraço da Equipe Canal Brincando com Ideias.
Oi ERIEDMASTER1. Muito obrigado. Que bom que tem gostado dos nossos vÃdeos. Essa mesma didÃĄtica vocÊ encontra nos Cursos do Prof. FlÃĄvio, Conheça todos os cursos disponÃveis acessando brincandocomideias.com.br/#meus-cursos NÃĢo esqueça de deixar um Like. Um forte abraço da Equipe do canal Brincando com Ideias.
Oi Filipe. Muito obrigado por participar do canal.A questÃĢo nÃĢo ÃĐ a variÃĄvel, e sim, o comando dentro do if ter sido executado, mesmo seo o if ter sido validado. Abraço da Equipe Canal Brincando com Ideias.
Em outras linguagens de programaçÃĢo tipo nÃĢo vejo isso acontecendo, geralmente quando se cria uma variÃĄvel declarando-a ela deve se ter um valor neutro, no caso de inteiro ÃĐ meio que automÃĄtico ser 0, talvez falte algo, nada ÃĐ perfeito. kkkkk pelo que vejo ÃĐ mais na linguagem C
@@BrincandocomIdeias Na verdade pode ser que entre no if pelo fato de uma variÃĄvel nao iniciada pode ter qualquer valor... por isso ele nÃĢo tem como comparar e entra no if.
Como disseram nÃĢo ÃĐ um bug, ÃĐ o comportamento esperado do C, como a variÃĄvel nÃĢo foi inicializada com nenhum valor, ÃĐ lido qualquer "lixo" que estiver que estiver na memÃģria. Em relaçÃĢo a executar um cÃģdigo dentro do IF que nÃĢo deveria, isso nÃĢo ÃĐ verdade, o cÃģdigo nÃĢo foi executado. Mas, no cÃģdigo de mÃĄquina, as variÃĄveis locais sÃĢo salvas em registradores, que sÃĢo reaproveitados a cada iteraçÃĢo do loop. "E por que o valor oitenta foi atribuÃdo a um registrador?" Isso sÃģ olhando o cÃģdigo assembly gerado para confirmar (o que nÃĢo ÃĐ difÃcil). Uma possibilidade ÃĐ por uma questÃĢo de otimizaçÃĢo, pois a atribuiçÃĢo precoce pode ajudar a nÃĢo quebrar o pipeline evitando instruçÃĩes de salto. De qualquer modo, o valor da variÃĄvel nÃĢo inicializada ÃĐ indefinido, entÃĢo deve-se esperar que qualquer valor pode ser lido dela.
Oi Jaciroscar. Muito obrigado por participar do canal. Como dissemos, a qustÃĢo nÃĢo estÃĄ na variÃĄvel e sim porque o arduino executou um comando dentro do if, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
A questÃĢo ÃĐ que ele rodou apenas uma das linhas dentro do bloco do IF. Isso ÃĐ inaceitÃĄvel. Mesmo se houvesse um erro no cÃģdigo, isso nunca deveria acontecer.
@@Rafnunes Ele nÃĢo rodou, apenas pegou um lixo anterior. A especificaçÃĢo do C diz explicitamente que o comportamento nesse caso ÃĐ indefinido (qualquer coisa pode acontecer). Como que o compilador seguir a especificaçÃĢo ÃĐ inaceitÃĄvel? VocÊ pode questionar o especificaçÃĢo do C achando ruim, mas nÃĢo pode dizer que ÃĐ um bug do compilador
@@jaciroscar Posso ter entendido errado, mas em um certo ponto do cÃģdigo, quando ele atribuiu 80 Ã variÃĄvel, executou-se apenas uma das duas linhas do bloco. Ainda que o valor da variÃĄvel seja desconhecido, a meu ver isso nÃĢo deveria acontecer. Ou eu entendi errado.
@@Rafnunes à que enquanto uma variÃĄvel nÃĢo ÃĐ inicializada seu valor pode ser qualquer coisa. E essa ÃĐ a especificaçÃĢo do C. Aconteceu desse "qualquer" coisa ser 80, pois o compilador se permite usar aquele regiÃĢo de memÃģria para qualquer cÃĄlculo interno intermediÃĄrio. Pode ser que em outro compilador, ou atÃĐ mesmo no mesmo compilador em outro nÃvel de otimizaçÃĢo de cÃģdigo seja um outro valor diferente de 80, entretanto, qualquer valor estÃĄ "correto". NÃĢo ÃĐ que uma linha de cÃģdigo foi executada e outra nÃĢo. Mas que o registrador utilizado pela variÃĄvel estava "livre" para ser usado pelo compilador enquanto o valor dele nÃĢo foi inicializado. EstÃĄ errado o que o cara do vÃdeo disse que no inÃcio a variÃĄvel devia ser zero. NÃĢo deveria, poderia ser qualquer coisa e geralmente vai ser algum valor lixo mesmo (uma sobra de outras operaçÃĩes, imprevisÃvel e sem significado nenhum). Lembrando que a cada iteraçÃĢo do loop, seu valor volta a ser lixo.
Em linguagem C ou C++ acessar variÃĄveis automÃĄticas ou locais nÃĢo inicializadas leva o programa a um estado indefinido. Logo, isso nÃĢo eh bug do arduino e sim do programa que foi apresentado.
Oi Bruno. Muito obrigado por participar do canal e pela sua opiniÃĢo. O fato ÃĐ que o bug nÃĢo estÃĄ na variÃĄvel, e sim, o porque do arduino ter executado o comando dentro do if, sem que o if tenha sido validado. Abraço da Equipe Canal Brincando com Ideias.
@@BrincandocomIdeias como expliquei em outro comentÃĄrio. A partir do momento que vocÊ acessou uma variÃĄvel nÃĢo inicializada vocÊ entrou no campo do "undefined", nÃĢo existe garantia alguma do que pode ocorrer com seu programa a partir deste ponto.
@@bcsanches entao amigo, mas mesmo sem saber o que ele ia considerar....ele considerou que estadoleds estava em 0, entrando no if, mas porque so executou um comando, e o serial.print nao?
@@rodrigoshisno9939 entendi perfeitamente o questionamento e a sensaçÃĢo que o programa "ignorou" o if. O que vocÊ nÃĢo entendeu ÃĐ que em se tratando de linguagem C e C++, a especificaçÃĢo da linguagem ÃĐ clara: a partir do momento que seu programa acessa uma variÃĄvel local nÃĢo inicializada, vocÊ fez uma operaçÃĢo "indefinida". A partir deste ponto, o compilador nÃĢo lhe garante que vai gerar o cÃģdigo corretamente ou que seu programa vai comportar como esperado. Ali o que ocorre ÃĐ que otimizadores de cÃģdigo C/ C++ sÃĢo agressivos e nesse cÃģdigo eliminam as variÃĄveis criadas pois sÃĢo desnecessÃĄrias. Entretanto, como vocÊ tem ali uma operaçÃĢo indefinida, o compilador se perde e nÃĢo sabe bem como gerar o cÃģdigo e o resultado, ÃĐ esse: godbolt.org/z/CLXWjg Nada de if, o compilador removeu tudo pois nÃĢo faz sentido... Agora incializando a variÃĄvel, esta ai o resultado: godbolt.org/z/DTKwkp
Oi Sidnei. Muito Obrigado pela sua participaçÃĢo. GostarÃamos de aproveitar a oportunidade para sugerir que assista a uma aula online gratuita. cursodearduino.net/aula-online Acompanhe nosso canal no Telegram: t.me/canal_brincando_com_ideias Acompanhe nosso canal no Instagram instagram.com/brincandocomideias/ Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho. Um forte abraço da Equipe Canal Brincando com Ideias, e um abraço tambÃĐm para o Gideon.
Muito bom Mestre! Valeu por compartilhar e parabÃĐns pela didÃĄtica. (Aos entusiastas da linguagem C, aceitem que ÃĐ BUG! O compilador deveria exigir a inicializaçÃĢo da variÃĄvel. VÃĢo falar que ÃĐ pilha, que ÃĐ lixo e etc... Mas nÃĢo importa. à BUG! ðð).
Oi Cmacma. Muito obrigado por participar do canal e pela sua opiniÃĢo. A questÃĢo do bug ÃĐ porque o comandodentro do if foi executado, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
@@BrincandocomIdeias a partir do momento que vocÊ acessou a variÃĄvel nÃĢo inicializada o programa foi para um estado inconsistente. Lembre-se que o compilador otimiza o cÃģdigo e muitas vezes variÃĄveis e blocos inteiros sÃĢo removidos, sem afetar a lÃģgica do programa. Mas para que isso ocorra, seu programa deve estar bem formado, o que nÃĢo ÃĐ o caso deste exemplo.
Oi Geraldo. Muito obrigado por participar do canal. Muito bom. ParabÃĐns. Isso indica sua boa percepçÃĢo. Abraço da Equipe Canal Brincando com Ideias.
FlÃĄvio, existe uma recomendaçÃĢo (boas prÃĄticas) para quem programa, sobretudo em C. A recomendaçÃĢo ÃĐ de sempre atribuir um valor ao iniciar uma variÃĄvel, como vocÊ fez.
Oi Gustavo. Muito obrigado por participar do canal e pela sua explicaçÃĢo. O problema nÃĢo ÃĐ a variÃĄvel. à porque o comando dentro do if foi executado, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
Oi, sou desenvolvedor tb dÊs de a dÃĐcada de 90, FlÃĄvio dÃĄ uma geral de boas prÃĄticas de programaçÃĢo para o pessoal... Ao estilo de "CÃģdigo Limpo", o livro.
Prof. Flavio concordo com Filipe Fernandes, isso ÃĐ erro de programaçÃĢo, deve-se ao declara a viariÃĄvel estadoLeds atribuir um valor padrÃĢo de 0zero, assim ela carrega e inicia sem valor e ao pressionar liga, isto ÃĐ uma dificuldade de organizar e declarar variÃĄveis, fiz meu Tcc todo com ARDUINO UNO, e funciona normal. Boa sorte, abs Flavio Fabricio de Sao Jose dos Campos
Oi Fabricio. Muito obrigado por participar do canal.O bug ao qual nos referimos, ÃĐ porque o comando dentro do if foi executado sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
@@BrincandocomIdeias professor Flavio eu preciso falar com o Sr por Whatsapp se for possivel? Vou deixar meu zap, ÃĐ melhor pessoalmente ou por audio aguardo sua msg 12-991755820 ÃĐ sobre manutençao em um projeto meu em Arduino, estou online o dia todo aguardo sua ligaçao Grato Fabricio
Oi trashfilmes. Muito obrigado. Que bom que gostou do vÃdeo. Se vocÊ deseja: Avançar ainda mais no universo Arduino, Ter acesso a um conteÚdo organizado, que vocÊ pode acessar tanto pelo celular quanto pelo computador Participar semanalmente do Encontro com os Alunos com o prof. FlÃĄvio, um espaço onde vocÊ poderÃĄ tirar dÚvidas, apresentar seus projetos, debater ideias e soluçÃĩes e ainda bater um papo tecnolÃģgico expandindo seus horizontes, Acesso a uma equipe preparada para tirar suas dÚvidas enquanto estuda, Acesse nossa pÃĄgina: brincandocomideias.com.br/#meus-cursos E escolha o curso certo para vocÊ. NÃĢo esqueça de deixar um Like. Um forte abraço da Equipe do canal Brincando com Ideias.
Quebrei a cabeça por uma semana com algo parecido.. Realmente a gente procura em tudo q eh lugar.. No meu caso eram vÃĄrios 'ifs' e deveria usar alguns 'else ifs'. Esse tipo de informaçÃĢo ÃĐ sempre muito relevante. Obrigado por compartilhar pro mundo!
@@BrincandocomIdeias Montei um atendimento tipo URA pra minha empresa usando um UNO (1 serial sÃģ..), um MP3 mini e um SIM 800. AlÃĐm de usar trechos de seus sketches, muita informaçÃĢo foi Útil pra concluir esse desafio.. 3 comunicaçÃĩes seriais em um micro de 1 serial.. E sem entender quase nada de programaçÃĢo.. Muito grato por todo o conhecimento!
Oi Flavio, qualquer memÃģria que se declare sem inicializaçÃĢo tem seu valor randÃīmico, isto acontece porque a ÃĄrea de memÃģria RAM do microcontrolador nÃĢo tem valor especÃfico, ou seja, o fabricante nÃĢo colocar um circuito que force um valor. Um valor prÃĐ determinado ÃĐ iniciado no SFR (Special Function Register), ai sim o fabricante coloca circuito para iniciar com um valor correto. Um exemplo disto ÃĐ o registrador DDR (Data Direction Register) que tem que ter seu valor igual a 0 para iniciar as portas como entrada. Uma soluçÃĢo para isto ÃĐ como vocÊ disse, forçar um valor na declaraçÃĢo da variÃĄvel ou declarar como static. Isto nÃĢo ÃĐ um BUG do compilador, ele sÃģ esta fazendo oque a norma ANSI ISO C99 diz. Um abraço
Oi QSP. Muito obrigado por participar do canal e pela sua explicaçÃĢo. O detalhe ÃĐ que o bug nÃĢo estÃĄ na variÃĄvel. e sim porque o comando dentro do if foi executado sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
Por programar em php tenho a mania de sempre criar as variÃĄveis com um valor jÃĄ definido sempre, mas conhecimento nunca ÃĐ demais! ParabÃĐns pela descoberta e espero que seja corrigido logo para que outras pessoas nÃĢo passem por isso
Oi Thiago. Muito obrigado por participar do canal. Isso aÃ. Sempre que pudermos divulgar informaçÃĩes Úteis, faremos. Abraço da Equipe Canal Brincando com Ideias.
Muito bom o vÃdeo, FlÃĄvio e equipe. Tive que assistir umas 5 vezes, pois eu nÃĢo estava acreditando como o Arduino executou esse cÃģdigo. Percebi que muitos nÃĢo entenderam o bug. EstÃĢo falando do lixo de memÃģria na variÃĄvel *estadoLeds* . Mas, os âexcelentes programadoresâ de comentÃĄrios, e muito arrogantes, nÃĢo perceberam que o problema ÃĐ no: *If(!estado_bt1)* (linha 21) 8:02 Como foi possÃvel entrar no if (na linha 21) sem que o if(!estado_bt1) fosse validado, executar a instruçÃĢo *estadoLeds = 80*; (linha 23) e nÃĢo executar o *Serial.println(âpassou pelo ponto 1â);* (linha 22) ? O caso da variÃĄvel *estadoLed* nÃĢo ter sido declarada e atribuÃda um valor, nÃĢo implica no comportamento do *if* testando a variÃĄvel *estado_bt1*. Obrigado pelas Ãģtimas aulas.
NÃĢo se trata de bug, ao criar uma variÃĄvel, a mesma ÃĐ vinculada a um espaço fÃsico na memÃģria "denominada registrador". Consultando o datashet nota-se que a memÃģria podem vir com valores indeterminados ( 0 ou 1 ), o fabricante informa que ao criar um rÃģtulo que nesse caso ÃĐ uma variÃĄvel ÃĐ imprescindÃvel acompanhar seu valor inicial. Portanto, nÃĢo se trata de um "bug" e sim de um ERRO no momento da programaçÃĢo que se encontra em desacordo com o datashet do microcontrolador utilizado no arduÃno.
Excelente dica FlÃĄvio! VocÊ tem algum post com rÃĄdio LoRa? Ou poderia me indicar? Preciso programar um par cliente/Servidor para ÃĄrea rural com alcance de 1500m
Oi Carlos. Muito obrigado por prticipar do canal. Infelizmente ainda nÃĢo temos nada sobre LoRa. Estamos estudando esta comunicaçÃĢo para podermos trazer um vÃdeo de qualidade. GostarÃamos de aproveitar a oportunidade para sugerir que assista a uma aula online gratuita. cursodearduino.net/aula-online Acompanhe nosso canal no Telegram: t.me/canal_brincando_com_ideias Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho. Abraço da Equipe Canal Brincando com Ideias.
Programo em "C" a mais de 20 anos e nunca tive este tipo de problema porque sempre que crio uma variÃĄvel eu inicio ela com um valor porque, ao ser criada uma variÃĄvel ÃĐ alocada uma posiçÃĢo de memÃģria para armazena-la e o conteÚdo desta posiçÃĢo de memÃģria ÃĐ atribuÃdo a variÃĄvel se ela nÃĢo for iniciada.
Pessoal estÃĄ correto o vÃdeo do professor FlÃĄvio. O fato de nÃĢo ter inicializado a variÃĄvel foi sim um problema. Mas o bug estÃĄ justamente no que ele explicou...com a variÃĄvel nÃĢo inicializada, ele teria que ler esse "lixo" da variÃĄvel e passar ou nÃĢo pelo if. o problema foi que com esse valor indefinido da variÃĄvel ele executou "metade do if" e isso sim ÃĐ um bug. Como ele disse, inicializando a variÃĄvel com um valor cessou o bug.
Boa noite FlÃĄvio. Isso me faz pensar que vÃĄrias vezes a lÃģgica que fiz nÃĢo replicava... à partir de hoje, todas variÃĄveis pÚblicas e valor definido! Ãtimo vÃdeo, abraço.
Oi JOsÃĐ. Muito obrigado por participar do canal e pela sua opiniÃĢo. De fato, vamos recomendar sempre no canal. Abraço da Equipe Canal Brincando com Ideias.
Oi Flavio, eu construà um projeto de Joystick Mache com o Arduino Leonardo. Estou tendo problemas com os analÃģgicos pois eles nÃĢo param de tremer. jÃĄ tentei aterramento nas saÃdas analÃģgicas nÃĢo utilizadas mas nÃĢo surtiu muito efeito. Estou utilizando potenciÃīmetros B10K e testei com o A10K e B50K. O que eu deveria fazer para resolver esse problema de tremedeira nos analÃģgicos?
Legal a aula, jÃĄ me aconteceu isso, com outro compilador e microcontrolador, e realmente variÃĄveis nÃĢo carregadas porem dar esse tipo de problema. No caso de nÃĢo ter passado no 1š if , a variÃĄvel pode ter pego lixo da ram quando foi alocada dendro da passagem do loop.
Numa aula de linguagem c na faculdade o professor fez um cÃģdigo justamente pra os alunos verem o lixo numa variÃĄvel nÃĢo iniciada, mas o que o vÃdeo mostra nÃĢo ÃĐ o bug com relaçÃĢo a isso, e sim por qual motivo o valor dentro do if foi aparece na variÃĄvel????? Acho que todos sabem que se a condiçÃĢo do if nÃĢo for satisfeita entÃĢo o programa pula para a linha depois das chaves {}, eu mesmo jÃĄ viu muito isso na prÃĄtica debugando passo a passo programas em microcontroladores PICs, e dÃĄ pra ver o programa pulando tudo que ta dentro das chaves do if nessa situaçÃĢo. EntÃĢo o bug NÃO se trata de aparecer um valor qualquer na variÃĄvel nÃĢo iniciada, O BUG à O PROGRAMA NÃO PULAR O QUE Tà DENTRO DAS CHAVES DE UM IF NÃO VALIDADO.
Oi Josinaldo. Muito obrigado por participar do canal e pela sua opiniÃĢo. Isso foi o que tentamos explicar no vÃdeo, mas parece que isso nÃĢo foi entendido. Talvez façamos outro vÃdeo. Abraço da Equipe Canal Brincando com Ideias.
@@BrincandocomIdeias DEsculpe, mas o que vocÊ parece nÃĢo entender, ÃĐ que vocÊ criou um programa onde nÃĢo existe garantia nenhuma da linguagem que a saÃda do compilador vai ser correta. O programa ÃĐ mal formado e a especificaçÃĢo da linguagem deixa claro que nesse caso, nÃĢo existe garantia que seu programa vai funcionar como esperado.
@@bcsanches Desculpe, mas o que vocÊ parece nÃĢo entender ÃĐ que o vÃdeo se refere a um comportamento nÃĢo esperado do programa, o qual foi ler o conteÚdo entre das chaves de um if nÃĢo validado, e esse ÃĐ o bug a que se refere o vÃdeo. Em lugar nenhum foi dito que o programa deveria ser exatamente como foi escrito e nem que tinha que ter garantia de funcionamento da forma que foi escrito. Mas atÃĐ agora todos que vÊm batendo nessa tecla nÃĢo responderam o por quÊ do comportamento citado no vÃdeo: POR QUE O PROGRAM LEU O CONTEÃDO DENTRO DAS CHAVES DO IF NÃO VALIDADO AO INVÃS DE PULAR PARA A PRÃXIMA LINHA APÃS AS CHAVES?????? Uma variÃĄvel nÃĢo declarada nÃĢo deveria afetar o comportamento do if, se isso nÃĢo ÃĐ um bug, o que ÃĐ entÃĢo? Vamos fazer uma analogia: se alguÃĐm nÃĢo tiver higiene pode contrair uma doença infectocontagiosa, mas isso nÃĢo quer dizer que a pessoa pode contrair uma tendinite por falta de higiene, pois a falta de higiene nÃĢo afeta de maneira nenhuma o mecanismo de surgimento da tendinite. Ou seja, o que se estaria questionando nÃĢo ÃĐ contrair uma doença infecto contagiosa por falta de higiene, pois isso todos sabem que ÃĐ possÃvel, mas a questÃĢo seria como ÃĐ possÃvel contrair uma doença que nÃĢo ÃĐ infectocontagiosa por falta de higiene?
@@josenildo.galdino sim, eu entendo todos estarem assutados pelo if nÃĢo funcionar. Mas entenda: vocÊs fizeram algo que a linguagem nÃĢo define comportamento algum e nÃĢo lhe da garantias. Por isso o if falha. VocÊ olhou o disassembly do cÃģdigo? Postei links aqui, de uma olhada. Como a construçÃĢo ÃĐ invÃĄlida, o compilador simplesmente se perde. NÃĢo ÃĐ bug, ÃĐ comportamento indefinido. Podem postar bugs em tudo quanto ÃĐ compilador C/C++ que eles vÃĢo apresentar isso e todos vÃĢo fechar o bug como nÃĢo sendo bug.
@@josenildo.galdino a linguagem possui regras, se vocÊ infringe as regras, o compilador tambÃĐm nÃĢo lhe da garantias que vai seguir as regras. Regra bÃĄsica de quem programa em C: o compilador assume que o programador sabe o que esta fazendo e desculpe, insistir que isso dai ÃĐ bug do compilador, mostra que o programador nÃĢo sabe o que esta fazendo.
Em Pascal uma variÃĄvel ÃĐ declarada sem valor, em Java deve ser declarada com valor. Quando comecei programar para Arduino sempre declarei variÃĄvel com valor acho uma boa prÃĄtica.
Oi JosÃĐ. Muito obrigado por participar do canal e pela sua opiniÃĢo. Destacamos que o bug nÃĢo se refere a variÃĄvel, e sim, porque o comando dentro do if foi executado, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
OI DC Pesca. Muito Obrigado pela sua participaçÃĢo. NÃģs ainda nÃĢo temos nenhum sensor deste tipo, mas vocÊ pode se basear em outros sensores que mostramos no canal. A forma de ler um sensor analÃģgico nÃĢo diferencia muito entre um e outro. à aconselhÃĄvel que teste cada dispositivo separadamente para saber se todos estÃĢo funcionando bem. Observe tambÃĐm a alimentaçÃĢo, pois alÃĐm da tensÃĢo elÃĐtrica, existe a corrente que ÃĐ tÃĢo importante quanto. No cursodearduino.net vocÊ aprenderÃĄ a eletrÃīnica e a programaçÃĢo necessÃĄrias para desenvolver seus projetos com arduinos e micro controladores. Ainda contarÃĄ com uma equipe de suporte para tirar dÚvidas e um encontro semanal com o prof. Flavio, seus assistentes e os demais alunos para tirar dÚvidas, apresentar projetos, debater ideias e soluçÃĩes, e atÃĐ mesmo bater um papo tecnolÃģgico. GostarÃamos de aproveitar a oportunidade para sugerir que assista a uma aula online gratuita. cursodearduino.net/aula-online Acompanhe nosso canal no Telegram: t.me/canal_brincando_com_ideias Acompanhe nosso canal no Instagram instagram.com/brincandocomideias/ Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho. Um forte abraço da Equipe Canal Brincando com Ideias.
Ãtima dica mestre! Nunca ia imaginar esse bug no compilador. Queria fazer um pedido, poderia ensinar a renomear e mudar a senha do modulo bluetooth HC-06. Algumas aplicaçÃĩes ficam vulnerÃĄveis com a senha de fÃĄbrica. Grato!
Isto nÃĢo ÃĐ bug, o q houve foi a leitura de uma variÃĄvel antes dela ser iniciada. Quando uma variÃĄvel ÃĐ declarada, ela aponta para algum lugar da memÃģria, mas nÃĢo a zera e pode conter qualquer valor q ali estava (lixo), sÃģ apÃģs iniciar a variÃĄvel (atribuir um primeiro valor) q ela ÃĐ realmente definida.
Quando nÃĢo atribuÃmos um valor ao declarar a variÃĄvel o valor assumido ÃĐ inesperado. Nesse caso o compilador buscou no cÃģdigo qualquer comando que lhe atribuisse valor. Provavelmente para otimizaçÃĢo do cÃģdigo. Mas a melhor prÃĄtica ÃĐ sempre atribuir valores ai declarar um inteiro.
Nooossa, tambÃĐm faço o curso de arduino, tive o mesmo problema durante a aula de if, sÃģ que achei outra soluçÃĢo, mas achei que eu estava errado na ÃĐpoca...
Oi Pedro. Muito obrigado por participar do canal Pois ÃĐ. . Acreditamos que outros alunos tambÃĐm tenham encontrado problemas. Mas agora vamos adotar o habito de sempr iniciar a variÃĄvel. Abraço da Equipe Canal Brincando com Ideias.
VÃdeo fail kkkkk acontece nos melhores canais! afinal, ninguÃĐm sabe tudo. De qualquer forma agora surge a oportunidade de um novo vÃdeo explicando de forma correta o real motivo do problema ocorrido no cÃģdigo. Forte abraço meu nobre, teu canal ÃĐ excelente e me ajuda bastante.
Oi Danilo. Muito obrigado por participar do canal. Pois ÃĐ. Achamos que vai ser preciso outro vÃdeo mesmo. rsrsrsrs.Abraço da Equipe Canal Brincando com Ideias.
Realmente... a maioria do pessoal nÃĢo entendeu o problema... Se o if fosse na variÃĄvel indefinida (estadoLeds) atÃĐ tudo bem... Mas o programa entrou num if de outra variÃĄvel que teoricamente nÃĢo era nem pra entrar... Ele atribuiu valor pra variavel EstadoLeds apÃģs verificar como falso um valor true... e a galera insiste em falar de lixo memÃģria...
fala flavio que top em eu quebrei a cabeça tentando ver oque poderia ser o problema mas sem chanse so depois de vc falar e mostrar msm pra eu entender kkkk valeu pela esplicaçÃĢo. Estou tentando fazer uma bomba fack de airsoft . vc tem algum video de lcd com I2c e teclado 4x4 ?
Oi Carlos. Muito Obrigado pela sua participaçÃĢo. Pois ÃĐ. Pequenos detalhes que fazem muita diferença. Quanto aos dispositivos que mencionou, temos ambos, mas em vÃdeos separados, mas nÃĢo ÃĐ difÃcil juntÃĄ-los em um unico projeto. Com as devidas bibliotecas instaladas, vocÊ tambÃĐm pode encontrar as programaçÃĩes bÃĄsicas nos sketchs de exemplos. GostarÃamos de aproveitar a oportunidade para sugerir que assista a uma aula online gratuita. cursodearduino.net/aula-online Acompanhe nosso canal no Telegram: t.me/canal_brincando_com_ideias Acompanhe nosso canal no Instagram instagram.com/brincandocomideias/ Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho. Um forte abraço da Equipe Canal Brincando com Ideias.
Colocar um valor inicial ÃĐ uma prÃĄtica recomendada, principalmente em C que nÃĢo "limpa" a variÃĄvel quando criada. PorÃĐm o compilador tem um bug mesmo e esse procedimento nÃĢo ÃĐ uma vacina, seria bom informar isso aà para os desenvolvedores da IDE.
Oi Ceticismo. Muito obrigado por participar do canal. Na verdade, o bug nÃĢo estÃĄ na variÃĄvel. O bug ÃĐ que o arduino executou o comando dentro do if, sem ter executado o if. Abraço da Equipe Canal Brincando com Ideias.
Oi Carlos. Muito obrigado. Que bom que gostou. GostarÃamos de aproveitar a oportunidade para sugerir que assista a uma aula online gratuita. cursodearduino.net/aula-online Acompanhe nosso canal no Telegram: t.me/canal_brincando_com_ideias Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho. Um forte abraço da Equipe Canal Brincando com Ideias.
OlÃĄ, boa tarde, tudo bem? Veja, eu jÃĄ vi alguns botÃĩes push button que sem pressionÃĄ-los ele apresenta contato fechado (push button nc) e quando vocÊ o pressiona, ele apresenta contato aberto. E existe tambÃĐm os abertos (push button no), isso tambÃĐm pode acarretar este mesmo bug (que nÃĢo ÃĐ bug). Depois reproduzirei a lÃģgica dele para ver isso e pela sua explicaçÃĢo, entendo que nÃĢo ÃĐ um bug, portanto, e sim um problema e declaraçÃĢo, sem inicializÃĄ-la e declarada dentro do procedimento, certo ou me equivoco. Obrigado
Oi Leandro. Muito obrigado por participar do canal e pela sua opiniÃĢo. De fato existe mesmo esse problema com chaves mecÃĒnicas, mas isso resolve-se com o debounce que jÃĄ foi mostrado aqui no canal e que ÃĐ parte integrante do nosso curso de arduino. O problema aqui foi o arduino ter executado o comando dentro do if, sem o if ter sido validado. DÃĄ para ver pelo debug que fizemos, que o botÃĢo mantÃĐm o mesmo nÃvel lÃģgico, mas mesmo assim, o comando ÃĐ executado. Abraço da Equipe Canal Brincando com Ideias.
Oi Emanoel. Muito obrigado por participar do canal. Pelo visto, vÃĄrios jÃĄ passaram por isso. Valeu por compartilhar sua experiÊncia. Abraço da Equipe Canal Brincando com Ideias.
Oi Daniel.Muito Obrigado pela sua participaçÃĢo e pelo seu comentÃĄrio. GostarÃamos de aproveitar a oportunidade para sugerir que assista a uma aula online gratuita. cursodearduino.net/aula-online Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho. Um forte abraço da Equipe Canal Brincando com Ideias. Nosso canal no Telegram: t.me/canal_brincando_com_ideias Nosso canal no Instagram instagram.com/brincandocomideias/
Eu realmente tive um bug quando usei um sensor Hall ligado a porta analÃģgica para marcar a posiçÃĢo inicial de um motor de passo. Depois de alguns dias, o arduino travava. Foi sÃģ remover o Hall que rodou perfeitamente. Alguma interferÊncia do componente na parte de hardware. Fica uma dica.
Oi Mariano. Muito Obrigado pela sua participaçÃĢo e por compartilhar sua experiÊncia com a gente. Dica anotada. Tentaremos encontrar soluçÃĩes, caso tenhamos uma situaçÃĢo parecida. VocÊ tambÃĐm pode contar com os seguintes cursos online:cursodearduino.net/principiantes, cursodearduino.net e cursodearduino.net/avancado. AlÃĐm de todo o conteÚdo organizado dos cursos, vocÊ Ainda conta com nosso grupo de whats app para interagir com os demais alunos e com a equipe de suporte que estarÃĄ pronta para responder suas dÚvidas com relaçÃĢo ao conteÚdo das aulas. Nos cursos de arduino e arduino avançado, vocÊ tambÃĐm poderÃĄ participar do encontro semanal, via zoom, com o prof. Flavio, seus assistentes e os demais alunos onde vocÊ poderÃĄ tirar dÚvidas, apresentar seus projetos, debater ideias e soluçÃĩes e ainda bater um papo tecnolÃģgico onde todos aprendem muito. Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho. Um forte abraço da Equipe Canal Brincando com Ideias.
Estou impressionado com a quantidade de programadores que dizem nÃĢo ser um bug do compilador. SerÃĄ que nÃĢo viram a atribuiçÃĢo 80 ser executada sem entrar na funçÃĢo?
VocÊ viu o cÃģdigo que o seu compilador gerou? vocÊ conhece a especificaçÃĢo da linguagem? Estou impressionado com a quantidade de pessoas que dizem programadores de C e C++ e nÃĢo conhececm a definiçÃĢo da linguagem e suas regras bÃĄsicas. A definiçÃĢo da linguagem diz claramente que acessar variÃĄveis automÃĄticas (ou locais) sem inicializaçÃĢo leva o programa a um estado indefinido. Logo, nÃĢo existe garantia alguma que seu programa vai se comportador como vocÊ espera. Impressiona tambÃĐm a quantidade de pessoas que acha que o compilador vai gerar o cÃģdigo exatamente como vocÊ quer, ele vai gerar um cÃģdigo que de o resultado que vocÊ espera, nÃĢo como vocÊ digitou. Qualquer otimizador vai rapidamente eliminar essas variÃĄveis pois sÃĢo desnecessÃĄrias no cÃģdigo final e como temos uma variÃĄvel nÃĢo inicializada, o if vai para o espaço... Veja aqui o cÃģdigo gerado por um compilador nesse caso: godbolt.org/z/7pZ-n_ Viu, nada de if... inicialize a variÃĄvel, que muda completamente a geraçÃĢo de cÃģdigo.
NÃĢo seria melhor deixar ela como uma variÃĄvel publica sem um valor setado para economizar espaço na memoria do ArduÃno no caso de programas maiores ?
Oi Devison. Muito obrigado por participar do canal. O fato ÃĐ que nÃĢo ÃĐ a variÃĄvel o problema. à o porque o arduino ter executado o comando dentro do if, sem o if ter sido validado. Abraço da Equipe Canal Brincando com Ideias.
FlÃĄvio, preciso da sua ajuda, o meu ArduÃno nÃĢo estÃĄ funcionando, eu quero fazer um LED piscar, mas nÃĢo consigo, e eu sempre confiro tudo como: programaçÃĢo e o sistema na proto board, confiro a porta (COM4) , coloco o resistor e nÃĢo da certo, oque vocÊ sugira que eu faça??????
Oi Murilo. Continue tentando coisas diferentes. Troque a porta do arduino. Tente outro resistor.Procure substituir jumpers. Utilize sketchs prontos da aba de exemplos. à difÃcil dar palpites sem estar com o problema em mÃĢos. Abraço da Equipe Canal Brincando com Ideias.
Oi Tecno. Muito Obrigado pela sua participaçÃĢo e pelo comentÃĄrio. VocÊ tambÃĐm pode contar com os seguintes cursos online: Curso de Arduino para principiantes> cursodearduino.net/principiantes, Curso de Arduino 2.0> cursodearduino.net Curso de Arduino Avançado> cursodearduino.net/avancado AlÃĐm de todo o conteÚdo organizado dos cursos, vocÊ Ainda conta com nosso whats app para interagir com a equipe de suporte que estarÃĄ pronta para responder suas dÚvidas com relaçÃĢo ao conteÚdo das aulas. VocÊ tambÃĐm poderÃĄ participar do encontro semanal, via zoom, com o prof. Flavio, seus assistentes e os demais alunos onde vocÊ poderÃĄ tirar dÚvidas, apresentar seus projetos, debater ideias e soluçÃĩes e ainda bater um papo tecnolÃģgico onde todos aprendem muito. Acesse nossas pÃĄginas para saber mais. Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho. Um forte abraço da Equipe Canal Brincando com Ideias.
Deve ser coincidÊncia, mas eu tive um problema muito estranho com o pino 8 do Arduino: quando preciso que o pino 8 trabalhe numa determinada frequÊncia ele começa a perder tensÃĢo. JÃĄ ocorreu duas vezes comigo, em dois cÃģdigos diferentes e com placas diferentes. O resultado ÃĐ que eu sempre evito utilizar o pino 8 em qualquer projeto.
Oi Rafael. Muito Obrigado pela sua participaçÃĢo e pela opiniÃĢo. Concordamos totalmente. Tanto que fizemos o vÃdeo para mostrar o que pode acontecer. GostarÃamos de aproveitar a oportunidade para sugerir que assista a uma aula online gratuita. cursodearduino.net/aula-online Acompanhe nosso canal no Telegram: t.me/canal_brincando_com_ideias Acompanhe nosso canal no Instagram instagram.com/brincandocomideias/ Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho. Um forte abraço da Equipe Canal Brincando com Ideias.
@@BrincandocomIdeias concordo plenamente e atÃĐ respondi a um comentÃĄrio em que o autor defendia a implementaçÃĢo do arduino. Eu acho a plataforma incrÃvel, mas bugs sÃĢo sempre esperados e ainda bem que existem canais como o seu para ensinar como dribla-los enquanto nÃĢo sai a correçÃĢo. Nesse caso, a soluçÃĢo nÃĢo irÃĄ impactar em nada quando a correçÃĢo sair. ParabÃĐns pelo canal.
Tenho um projeto onde tem balança, leitor de cor, ldr e vÃĄrios outros componentes eu tenho um botÃĢo pull UP e quando aperto ele o arduÃno trava, descobri que quando desconecto os fios do LCD ele nÃĢo trava, quando conecto os fios do LCD ele volta a travar, fios nÃĢo estÃĄ frouxo, a alimentaçÃĢo pode ser externa ou na do arduÃno e acontece do mesmo jeito.. o q pode ser?
Oi CafÃĐ Dutin. Muito obrigado pela sua participaçÃĢo. A princÃpio, pensamos na alimentaçÃĢo. AlÃĐm da tensÃĢo, a fonte precisa ter uma corrente(Amperes) suficiente para todos os dispositivos. Usando fontes externas, todos os negativos destas fontes e o GND do arduino, precisam estar conectados. Quando remove o display e o projeto funciona, estÃĄ removendo somente do circuito, ou estÃĄ removendo da programaçÃĢo tambÃĐm? Se ÃĐ somente do circuito, o mais provÃĄvel seria alimentaçÃĢo mesmo. tente deixar o display ligado e remover outro dispositivo para ver se o problema continua. Ou tente um sketch somente com o display, para saber se nÃĢo ÃĐ defeito do dispositivo. Se vocÊ deseja: Avançar ainda mais no universo Arduino, Ter acesso a um conteÚdo organizado, que vocÊ pode acessar tanto pelo celular quanto pelo computador Participar semanalmente do Encontro com os Alunos com o prof. FlÃĄvio, um espaço onde vocÊ poderÃĄ tirar dÚvidas, apresentar seus projetos, debater ideias e soluçÃĩes e ainda bater um papo tecnolÃģgico expandindo seus horizontes, Acesso a uma equipe preparada para tirar suas dÚvidas enquanto estuda, Acesse nossa pÃĄgina: brincandocomideias.com.br/#meus-cursos E escolha o curso certo para vocÊ. NÃĢo esqueça do Like e Compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho. Um forte abraço da Equipe do canal Brincando com Ideias.
@@BrincandocomIdeias obrigado pela atençÃĢo, se isso ajudar vcs, o meu problema foi o seguinte, no meu projeto tem calha vibratÃģria e quando eu ligava o vibrador o arduÃno travava, dava uns pesos fantasmas, quando conectava o LCD o arduÃno reiniciava sozinho, e eu jÃĄ hÃĄ uns 2 meses quebrando a cabeça resolvi ontem pra cÃĄ soldar todos os fios e coneccoes existente sem ter nenhum encaixe nos fios, isso resolveu todos os problemas com travamento, desligamento, pesos fantasmas e etc. Obrigado aà pelo comentÃĄrio e Deus abençoe vcs.
Oi Ivanildo. Muito obrigado por participar do canal. O problema nÃĢo estÃĄ na variÃĄvel, e sim porque o comando dentro do if foi executado, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
Um antigo professor sempre me dizia: âSe declarar uma variÃĄvel, inicialize elaâ. Acho q esses bugs fazem parte de qualquer linguagem de programaçÃĢo. TÃī querendo fazer esse curso kkk
Oi Jailson. Muito obrigado por participar do canal. Seu professor estÃĄ certÃssimo. A questÃĢo do bug nÃĢo foi a variÃĄvel, e sim o porque de executar uma açÃĢo que estÃĄ dentro do if sem ter entrado do if. Acompanhe nosso canal no o Instagram instagram.com/canalbrincandocomideias. Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho. Abraço da Equipe Canal Brincando com Ideias.
@@BrincandocomIdeias Pessoal, parabÃĐns pelo canal e pela gentileza e humildade de compartilhar o conhecimento conosco. Em breve estarei com vcs no curso de Arduino. Abraços
Vamos usar outra porta pra ver se o bug continua! O pessoal nÃĢo entendeu que o programa estÃĄ entrando no if, portanto, nÃĢo ÃĐ lixo na memÃģria. Grande abraço!!!!!
FlÃĄvio meu nome ÃĐ josias, mim ajuda ai, baixei um app Evericircuit e estou tentando faser o motor funciona mas nÃĢo consigo, tento direto na bateria 6v nÃĢo pega, tento com um trasistor nÃĢo pega, porque? Ajuda ai...
Oi Josias. Muito obrigado por participar do canal. DifÃcil ajudar. Qual programa? Qual motor?Alimentando como? SÃĢo muitas questÃĩes que podem interferir no funcionamento de um projeto. Abraço da Equipe Canal Brincando Id
Oi Sergio. Muito obrigado por participar do canal. Este problema pode ter vÃĄrias causas. Desde alimentaçÃĢo incorreta, atÃĐ um arduino queimado. Tente mandar um sketch blink para testar se o problema ÃĐ com o arduino ou com o seu programa. GostarÃamos de aproveitar a oportunidade para sugerir o curso de arduino.net onde vocÊ aprenderÃĄ a eletrÃīnica e a programaçÃĢo necessÃĄrias para desenvolver seus projetos com arduino. Acompanhe nosso canal no o Instagram instagram.com/canalbrincandocomideias. Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho. Abraço da Equipe Canal Brincando com Ideias.
NÃĢo ÃĐ BUG! na linha 15 do primeiro cÃģdigo estÃĄ sendo atribuÃdo o valor de 1 para a variÃĄvel estadoLeds fora das chaves do if, sendo assim ele vai executar fora da verificaçÃĢo, me corrijam se eu estiver errado
Prezados, aqui esta o codigo gerado com otimizaçÃĩes ligadas, o compilador simplesmente remove o "if" pois o comportamento ÃĐ totalmente indefinido: godbolt.org/z/7pZ-n_ Agora, quando vocÊ inicializa a variÃĄvel, o if esta lÃĄ e funciona perfeitamente: godbolt.org/z/yWkqyx Observem como muda completamente a geraçÃĢo do cÃģdigo com a inicializaçÃĢo da variÃĄvel. Portanto, nÃĢo existe bug algum no arduino. Apenas um programa mal formado que leva a uma compilaçÃĢo com saÃda "indefinida" pela especificaçÃĢo da linguagem.
Olha, quanto a inicializar as variÃĄveis para nÃĢo carregar lixo da pilha, estou junto, ÃĐ praxe em algumas linguagens. Lembro desde o Fortran IV de ter que zerar vetores e matrizes. Mas ainda nÃĢo entendi como que ele pode entrar no IF, atribuindo o valor 80, mas sem escrever a linha "passou pelo ponto 1" ? ambos os comandos nÃĢo estÃĢo juntos dentro das { } do IF? JÃĄ que ele entrou indevidamente no IF, nÃĢo tinha que ter executado as duas linhas?
Oi Silvio. Muito obrigado por participar do canal. à exatamente essa a questÃĢo do bug, mas pelos comentÃĄrios, acho que nÃĢo fomos claros. Talvez façamos outro vÃdeo. Abraço da Equipe Canal Brincando com Ideias.
â@@BrincandocomIdeias Exato! O pessoal centrou o foco (ou o fogo !) na declaraçÃĢo da variÃĄvel, e nÃĢo no "IF" que nÃĢo "IFOU" ; ) Eu repeti o sketch aqui, sem declarar valor ao estadoLeds, e reproduzi o mesmo efeito "bugado". PorÃĐm, acrescentei algumas coisas que sÃģ somaram mais curiosidade: - NÃĢo importa quantos comandos eu acrescento no IF, todos sÃĢo desprezados. Exceto todos os comandos que contenham a variÃĄvel estadoLeds, esses sÃĢo sempre executados; - Dentro do IF, se eu somo uma constante qualquer ao estadoLeds, ele imprime o valor 97! sempre... mesmo que eu some ou subtraia outra coisa apÃģs, imprime 97... - Dentro do IF, se eu multiplicar ou dividir o estadoLeds por uma constante, ele nÃĢo executa, nÃĢo entra no IF... - Dentro do IF, se eu dividir estadoLeds por ele mesmo, dÃĄ 1, ele imprime 1, e passa pelo "ponto 2" ! Muito estranho tudo isso kkk Que serÃĄ esse 97 ?? Abraços, Professor!
Boas prÃĄticas de programaçÃĢo, para evitar lixos de memÃģria: ao criar uma variÃĄvel, inicialize-a sempre com um valor definido! (regra bÃĄsica para evitar perder tempo procurando bug)
Oi Jonarnisseno. Muito obrigado por participar do canal e pela sua opiniÃĢo. O fato ÂīÂīe o comando dentro do if, ter sido executado sem o if ser validado. Abraço da Equipe Canal Brincando com Ideias.
Muito bom os seus vÃdeos estÃĄ de parabÃĐns. Gostaria de saber se vc poderia me ajudar estou tentando fazer uma balança com o Arduino mas nÃĢo estÃĄ dando certo o valor do peso nÃĢo altera confirme a carga da balança e o valor que ÃĐ mostrado fica variando sem parar estou tentando fazer com 2 cÃĐlula de carga e o mÃģdulo hx711
Oi Vithor. Muito obrigado por participar do canal. No momento, infelizmente, nÃĢo dispomos dos serviços de consultoria ou suporte aos vÃdeos do canal, mas informamos que temos quase 500 vÃdeos gratuitos no canal, que poderÃĢo ajuda-lo com seu projeto. Sugerimos ainda, o cursodearduino.net, onde vocÊ aprenderÃĄ a eletrÃīnica e a programaçÃĢo necessÃĄrias para desenvolver seus projetos com arduino, sem dificuldades. Abraço da Equipe Canal Brincando com Ideias.
NÃĢo ÃĐ um bug. Quando a variÃĄvel ÃĐ inicializada, nÃĢo hÃĄ garantia de que ela iniciarÃĄ com zero, especialmente variÃĄveis locais. E o programa utiliza o valor dela antes de ser atribuÃdo valor. Assim, vocÊ pode pegar lixo. A lÃģgica de funcionamento desse software, alÃĐm de muito ineficiente, estÃĄ errada. O problema nÃĢo estÃĄ no microcontrolador, nem no compilador, nem no software do arduino: estÃĄ no programa e quem o escreveu. Falta experiÊncia.
Oi Daniel. Muito obrigado por participar do canal. A questÃĢo nÃĢo ÃĐ a variÃĄvel, e sim, porque o comando dentro do if foi executado, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
Qualquer um que tenha feito um curso de programaçÃĢo sabe que deve inicializar uma variÃĄvel antes de usar o valor armazenado. Ajuste seu material! www.arduino.cc/en/Reference/VariableDeclaration
Oi JoÃĢo. Muito obrigado por participar do canal e pela sua opiniÃĢo. o fato ÃĐ porque o comando dentro do if foi executado sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
oi, na parte dos codigos eu consigo digitar e carrega normalmente ,mas meu arduino fica como os botoes pressionado no monitor de teste do programa e tambem fora dele. rsr sera que estÃĄ em curto
Oi Washington. Muito obrigado por participar do canal. Isso pode ser um erro de programaçÃĢo, ou mal contato, Existem vÃĄrias causas. Mas precisarÃamos nalisar seu cÃģdigo e seu circuito. GostarÃamos de aproveitar a oportunidade para sugerir que assista a uma aula online gratuita. cursodearduino.net/aula-online Acompanhe nosso canal no Telegram: t.me/canal_brincando_com_ideias Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho. Um forte abraço da Equipe Canal Brincando com Ideias.
isso nÃĢo ÃĐ um bug, isso ÃĐ um erro de programaçÃĢo variÃĄveis que nÃĢo estÃĢo em methodo getter and setters precisa receber um valor! ele precisa receber um valor inicial
Oi Vitor. Muito obrigado por participar do canal. O problema nÃĢo ÃĐ a variÃĄvel e sim, porque o comando dentro do if foi executado, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
...desculpe a opiniÃĢo pessoal, mas ÃĐ sim uma falha de programaçÃĢo. Uma variÃĄvel ÃĐ apenas a definiçÃĢo de um espaço onde SERÃO / PODERÃO SER armazenados valores, mas ela - a variÃĄvel - nÃĢo ÃĐ por si mesma o valor. à como se houvÃĐssemos apenas designado um espaço na gaveta onde guardaremos os lenços: Esse espaço pode conter lenços, mas nÃĢo ÃĐ ele mesmo um lenço. EntÃĢo fica Ãģbvio, ÃĐ sim uma falha na lÃģgica de programaçÃĢo. Faltou um passo. Resumindo: A ATRIBUIÃÃO de um valor à uma varià vel NÃO à a mesma coisa que a DECLARAÃÃO de uma variÃĄvel.
Oi JosÃĐ. Muito obrigado por participar do canal e pela sua opiniÃĢo. A questÃĢo nÃĢo ÃĐ a variÃĄvel, e sim, porque o comando dentro do if foi executado, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
2:24 "a logica ta certinha" NÃĢo estÃĄ nÃĢo.... Faltou digitar o valor ... Mas legal a criatividade do tÃtulo do video... Me fez ficar curioso e assisiti o video...
Oi Cleyton. Muito obrigado por participar do canal. O bug nÃĢo estÃĄ na variÃĄvel. O problema ÃĐ que o comando dentro do if foi executado sem o if ter sido validado. Abraço da Equipe Canal Brincando com Ideias.
Oi Junior. Muito obrigado por participar do canal e por compartilhar sua experiÊncia. Agora achamos que o problema estÃĄ resolvido. rsrs. Abraço da Equipe Canal Brincando com Ideias.
Meu caro, isso nÃĢo ÃĐ um BUG do arduino como vc repetiu durabte os 12 minutos do vÃdeo. à simplesmente a maneira como a linguagem C funciona, se vocÊ nÃĢo declarar um valor inicial para a variÃĄvel, ela irÃĄ conter "lixo", informaçÃĩes que podem ter sido usadas como cache ou variÃĄveis anteriores. Portanto, ÃĐ um nÚmero diferente de 0. E ÃĐ assim que o arduino irÃĄ tratar, como um valor equivalente a false. Por isso iniciou com a porta ligada.
Oi Gabriel. Muito obrigado por participar do canal e pela sua explicaçÃĢo. O problema nÃĢo estÃĄ na variÃĄvel, e sim, porque o comando dentro do if foi executado, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
Oi Rodrigo. Muito obrigado por participar do canal. Acreditamos ser um problema de certa forma comum., apesar de se recomendar que os valores sejam atribuÃdos. Abraço da Equipe Canal Brincando com Ideias.
99% dos comentÃĄrios mostram que as pessoas NÃO entenderam o vÃdeo direito.. o problema ÃĐ que estÃĄ sendo executado o comando dentro do IF sem que se entre no IF. à um bug do compilador. Qual compilador vc estÃĄ usando? Aqui no GCC estÃĄ perfeito, acho que isso aà ÃĐ coisa do Ruindows. O TÃtulo deveria ser mudado para "Encontramos um BUG no compilador do Ruindows". (nÃĢo confundam Arduino IDE com Compilador C/C++)
FlÃĄvio atÃĐ o momento nÃĢo và nenhuma resposta da sua parte sobre os comentÃĄrios dos colegas que provaram que isso nÃĢo ÃĐ um BUG. VocÊ grava vÃĄrios vÃdeos com excelente conteÚdo mas tem que ser mais participativo nos comentÃĄrios, eu mesmo jÃĄ fiz algumas perguntas e atÃĐ agora sem respostas. DÃĄ uma atençÃĢo pro pessoal para o seu canal crescer ainda mais.
Oi Elias. Muito obrigado por participar do canal e pela sua observaçÃĢo. Note que todos~ comentÃĄrios no canal sÃĢo feitos no dia seguinte e normalmente procuramos responder todas as mensagens, exceto aquelas perguntas sem logica ou sem informaçÃĢo suficiente. do tipo "porque meu arduino nÃĢo funciona?". Sem que o pro blema seja descrito, como dar uma resposta? Abraço da Equipe Canal Brincando com Ideias.
@@BrincandocomIdeias Diante disso pesquise minhas perguntas e veja se as mesmas tem lÃģgica pra vocÊ, bem como o e-mail enviado verifique se o teor do mesmo ÃĐ relevante pra vocÊ, no meu ver uma resposta mesmo que seja negativa ÃĐ melhor do que ficar sem resposta.
OlÃĄ @Elias Pereira! Tudo bem? ð Sobre ser um bug ou nÃĢo, nÃģs podemos simplesmente separar a situaçÃĢo em duas formas de pensar: A primeira ÃĐ aproveitar a informaçÃĢo e aprender, investigar e se aprimorar A segunda forma de pensar seria apenas discutir a classificaçÃĢo do evento e ficar parado onde estÃĄ. Cada um pode fazer a sua prÃģpria escolha ð Acredito que vocÊ nÃĢo tenha notado anteriormente mas NÃS, entenda que a equipe nÃĢo conta apenas com o professor FlÃĄvio, aqui da equipe do canal respondemos a grande maioria dos comentÃĄrios, sÃĢo mais de 260mil inscritos atualmente e tentamos sempre dar o mÃĄximo de atençÃĢo a todos vocÊs. Assim como estamos respondendo a sua pergunta tambÃĐm respondemos de outros inscritos conforme conseguimos. Infelizmente o tempo que temos durante o dia ÃĐ fixo e todos os dias temos novos comentÃĄrios, novos emails, novos vÃdeos para gravar, editar, planejar etc. entÃĢo um ou outro comentÃĄrio acaba ficando sem resposta. Note que isso ÃĐ porque temos uma equipe, uma pessoa sozinha jamais conseguiria responder todas as centenas de emails e comentÃĄrios diÃĄrios ðð Muito obrigado pela sua participaçÃĢo e pelo feedback, um forte abraço! Att. Equipe do canal Brincando com ideias
Oi Gt3CaioBr. Muito obrigado pela sua participaçÃĢo. Pode ser visto desta forma. Se vocÊ deseja: Avançar ainda mais no universo Arduino, Ter acesso a um conteÚdo organizado, que vocÊ pode acessar tanto pelo celular quanto pelo computador Participar semanalmente do Encontro com os Alunos com o prof. FlÃĄvio, um espaço onde vocÊ poderÃĄ tirar dÚvidas, apresentar seus projetos, debater ideias e soluçÃĩes e ainda bater um papo tecnolÃģgico expandindo seus horizontes, Acesso a uma equipe preparada para tirar suas dÚvidas enquanto estuda, Acesse nossa pÃĄgina: brincandocomideias.com.br/#meus-cursos E escolha o curso certo para vocÊ. NÃĢo esqueça de deixar um Like. Um forte abraço da Equipe do canal Brincando com Ideias.
Caramba q bug grotesco, merece ser reportado pros desenvolvedores. No meu entendimento, no caso de uma variÃĄvel local nÃĢo ser inicializada, o mÃĄximo q poderia acontecer seria o surgimento de um valor "garbage" na posiçÃĢo de memÃģria desta variÃĄvel. Edit: realmente, apÃģs a discussÃĢo, nÃĢo creio que seja um bug, todavia ÃĐ importante saber o porquÊ deste comportamento.
Os desenvolvedores vÃĢo responder educadamente (ou nÃĢo), que nÃĢo existe bug algum no arduino. Simplesmente acessar variÃĄvel nÃĢo inicializa em C ÃĐ "undefined" e a partir deste ponto, o comportamento do programa pode ser qualquer um.
Oi Julio. Muito obrigado por participar do canal. Realmente. Pretendemos informar sim, aos desenvolvedores. Abraço da Equipe Canal Brincando com Ideias.
Bruno Sanches entÃĢo, referindo ao outro post q estamos conversando, nos PICs isso nÃĢo acontece, pq as variÃĄveis locais sÃĢo salvas na mesma parte da RAM q as demais. Logo, acessar uma var nÃĢo inicializada retornaria apenas lixo e nÃĢo teria este comportamento undefined. Meu erro foi assumir q a arquitetura dos AVRs ÃĐ igual kkk. Vou olhar o datasheet do 328p qnd sobrar um tempo.
Oi Marcel. Muito obrigado por participar do canal. A questÃĢo nÃĢo ÃĐ a variÃĄvel, e sim, porque o comando dentro do if foi executado, sem o if ter sido validado? Abraço da Equipe CanaCanal BrincandIdeias.
âSou formado em ciÊncias da computaçÃĢo e especialista em programaçÃĢo em Arduinoâ mas nÃĢo sabe que uma variÃĄvel em c nÃĢo inicializada, o valor ÃĐ nÃĢo definido! Depois faz um vÃdeo dizendo que achou um bug , puro click bait. NÃĢo tem mal se errar, tem mal ÃĐ dar informaçÃĢo enganadora Talvez seja melhor comprar um livro de c e dar uma revisÃĢo...
Oi Hugo. Muito obrigado por participar do canal e pela sua opiniÃĢo. A questÃĢo do bug nÃĢo ÃĐ a variÃĄvel e sim, porque o comando dentro do if foi executado, sem o if ter sido validado. Abraço da Equipe Canal Brincando com Ideias.
ð CURSO COMPLETO DE ARDUINO: cursodearduino.net/
⥠LIVRO ELETRÃNICA PARA AUTODIDATAS - GABRIEL TORRES: bit.ly/2VlrL8x
ðĶ COMPRE ARDUINO E ACESSÃRIOS EM: www.arducore.com.br/
eu queria q fosse codigo de maquina pura
de 0 e 1 ligado e desligado mas
o computador ler isso como uma caracter
tambem queria saber o codigo de maquina da intel mas o corretor de erro nÃĢo deixa o codigo puro
@@DarkCybergun talvez fiseram isso por clickbait
@@DarkCybergun era so dar um delay
@@DarkCybergun a agora eu vi que nÃĢo e eletronica
Caro mestre,
Na minha opiniÃĢo nÃĢo trata-se de bug do compilador pois apenas variÃĄveis globais sÃĢo iniciadas com zero.
Como a variÃĄvel foi declarada dentro da funçÃĢo loop() sem ser iniciada, conterÃĄ o valor que existir na pilha quando for carregada!!!
Falou tudo que pensei.
Perceba q nÃĢo foi um valor qualquer, mas sim justamente o q estava dentro do bloco do if.
O Único bug eh do prÃģprio programa, nÃĢo do arduinos. Se vocÊ acessa uma variÃĄvel local nÃĢo inicializada em linguagem c, o resultado eh indefinido.
A pilha nÃĢo armazena somente os endereços de retorno das funçÃĩes?
@@JulioCesar-hn3dy nÃĢo. VariÃĄveis locais sÃĢo "empilhadas".
VALEU! Acabou de salvar o "esquentamento" de vÃĄrias mentes!
Oi Croa. Muito obrigado por participar do canal. Achamos que sim, mas pelos comentÃĄrios, estamos esquentando outras. rsrsrs. Abraço da Equipe Canal Brincando com Ideias.
Excelente aula, muito bom mesmo ð ð
Oi ERIEDMASTER1. Muito obrigado. Que bom que tem gostado dos nossos vÃdeos.
Essa mesma didÃĄtica vocÊ encontra nos Cursos do Prof. FlÃĄvio,
Conheça todos os cursos disponÃveis acessando
brincandocomideias.com.br/#meus-cursos
NÃĢo esqueça de deixar um Like.
Um forte abraço da Equipe do canal Brincando com Ideias.
NÃĢo ÃĐ bug, isso no mundo da programaçÃĢo ser chama "lixo de memÃģria", acontece quando uma variÃĄvel nÃĢo ÃĐ iniciada.
Oi Filipe. Muito obrigado por participar do canal.A questÃĢo nÃĢo ÃĐ a variÃĄvel, e sim, o comando dentro do if ter sido executado, mesmo seo o if ter sido validado. Abraço da Equipe Canal Brincando com Ideias.
Em outras linguagens de programaçÃĢo tipo nÃĢo vejo isso acontecendo, geralmente quando se cria uma variÃĄvel declarando-a ela deve se ter um valor neutro, no caso de inteiro ÃĐ meio que automÃĄtico ser 0, talvez falte algo, nada ÃĐ perfeito. kkkkk pelo que vejo ÃĐ mais na linguagem C
@@BrincandocomIdeias Na verdade pode ser que entre no if pelo fato de uma variÃĄvel nao iniciada pode ter qualquer valor... por isso ele nÃĢo tem como comparar e entra no if.
@@fabiotortorella4546 Assiste de novo e repara no 7:45. (nÃĢo passou pelo if)
Como disseram nÃĢo ÃĐ um bug, ÃĐ o comportamento esperado do C, como a variÃĄvel nÃĢo foi inicializada com nenhum valor, ÃĐ lido qualquer "lixo" que estiver que estiver na memÃģria.
Em relaçÃĢo a executar um cÃģdigo dentro do IF que nÃĢo deveria, isso nÃĢo ÃĐ verdade, o cÃģdigo nÃĢo foi executado. Mas, no cÃģdigo de mÃĄquina, as variÃĄveis locais sÃĢo salvas em registradores, que sÃĢo reaproveitados a cada iteraçÃĢo do loop. "E por que o valor oitenta foi atribuÃdo a um registrador?" Isso sÃģ olhando o cÃģdigo assembly gerado para confirmar (o que nÃĢo ÃĐ difÃcil). Uma possibilidade ÃĐ por uma questÃĢo de otimizaçÃĢo, pois a atribuiçÃĢo precoce pode ajudar a nÃĢo quebrar o pipeline evitando instruçÃĩes de salto.
De qualquer modo, o valor da variÃĄvel nÃĢo inicializada ÃĐ indefinido, entÃĢo deve-se esperar que qualquer valor pode ser lido dela.
Oi Jaciroscar. Muito obrigado por participar do canal. Como dissemos, a qustÃĢo nÃĢo estÃĄ na variÃĄvel e sim porque o arduino executou um comando dentro do if, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
A questÃĢo ÃĐ que ele rodou apenas uma das linhas dentro do bloco do IF. Isso ÃĐ inaceitÃĄvel. Mesmo se houvesse um erro no cÃģdigo, isso nunca deveria acontecer.
@@Rafnunes Ele nÃĢo rodou, apenas pegou um lixo anterior. A especificaçÃĢo do C diz explicitamente que o comportamento nesse caso ÃĐ indefinido (qualquer coisa pode acontecer). Como que o compilador seguir a especificaçÃĢo ÃĐ inaceitÃĄvel? VocÊ pode questionar o especificaçÃĢo do C achando ruim, mas nÃĢo pode dizer que ÃĐ um bug do compilador
@@jaciroscar Posso ter entendido errado, mas em um certo ponto do cÃģdigo, quando ele atribuiu 80 Ã variÃĄvel, executou-se apenas uma das duas linhas do bloco. Ainda que o valor da variÃĄvel seja desconhecido, a meu ver isso nÃĢo deveria acontecer. Ou eu entendi errado.
@@Rafnunes à que enquanto uma variÃĄvel nÃĢo ÃĐ inicializada seu valor pode ser qualquer coisa. E essa ÃĐ a especificaçÃĢo do C. Aconteceu desse "qualquer" coisa ser 80, pois o compilador se permite usar aquele regiÃĢo de memÃģria para qualquer cÃĄlculo interno intermediÃĄrio. Pode ser que em outro compilador, ou atÃĐ mesmo no mesmo compilador em outro nÃvel de otimizaçÃĢo de cÃģdigo seja um outro valor diferente de 80, entretanto, qualquer valor estÃĄ "correto". NÃĢo ÃĐ que uma linha de cÃģdigo foi executada e outra nÃĢo. Mas que o registrador utilizado pela variÃĄvel estava "livre" para ser usado pelo compilador enquanto o valor dele nÃĢo foi inicializado. EstÃĄ errado o que o cara do vÃdeo disse que no inÃcio a variÃĄvel devia ser zero. NÃĢo deveria, poderia ser qualquer coisa e geralmente vai ser algum valor lixo mesmo (uma sobra de outras operaçÃĩes, imprevisÃvel e sem significado nenhum). Lembrando que a cada iteraçÃĢo do loop, seu valor volta a ser lixo.
Valeu Gideon, valeu prof. FlÃĄvio.
Oi JoÃĢo. Muito obrigado por participar do canal. E agradecemos em nome do nosso aluno Gideon. Abraço da Equipe Canal Brincando com Ideias.
Em linguagem C ou C++ acessar variÃĄveis automÃĄticas ou locais nÃĢo inicializadas leva o programa a um estado indefinido. Logo, isso nÃĢo eh bug do arduino e sim do programa que foi apresentado.
Oi Bruno. Muito obrigado por participar do canal e pela sua opiniÃĢo. O fato ÃĐ que o bug nÃĢo estÃĄ na variÃĄvel, e sim, o porque do arduino ter executado o comando dentro do if, sem que o if tenha sido validado. Abraço da Equipe Canal Brincando com Ideias.
@@BrincandocomIdeias como expliquei em outro comentÃĄrio. A partir do momento que vocÊ acessou uma variÃĄvel nÃĢo inicializada vocÊ entrou no campo do "undefined", nÃĢo existe garantia alguma do que pode ocorrer com seu programa a partir deste ponto.
@@bcsanches entao amigo, mas mesmo sem saber o que ele ia considerar....ele considerou que estadoleds estava em 0, entrando no if, mas porque so executou um comando, e o serial.print nao?
@@bcsanches Vc nÃĢo entendeu que o problema nÃĢo ÃĐ a variÃĄvel estadoLeds. E sim, como entrou no If(!estado_bt1) sem q ele tenha sido validado
@@rodrigoshisno9939 entendi perfeitamente o questionamento e a sensaçÃĢo que o programa "ignorou" o if. O que vocÊ nÃĢo entendeu ÃĐ que em se tratando de linguagem C e C++, a especificaçÃĢo da linguagem ÃĐ clara: a partir do momento que seu programa acessa uma variÃĄvel local nÃĢo inicializada, vocÊ fez uma operaçÃĢo "indefinida". A partir deste ponto, o compilador nÃĢo lhe garante que vai gerar o cÃģdigo corretamente ou que seu programa vai comportar como esperado. Ali o que ocorre ÃĐ que otimizadores de cÃģdigo C/ C++ sÃĢo agressivos e nesse cÃģdigo eliminam as variÃĄveis criadas pois sÃĢo desnecessÃĄrias. Entretanto, como vocÊ tem ali uma operaçÃĢo indefinida, o compilador se perde e nÃĢo sabe bem como gerar o cÃģdigo e o resultado, ÃĐ esse: godbolt.org/z/CLXWjg
Nada de if, o compilador removeu tudo pois nÃĢo faz sentido...
Agora incializando a variÃĄvel, esta ai o resultado: godbolt.org/z/DTKwkp
A dica que vocÊ deu ÃĐ a mais importante, sempre se deve iniciar com um valor.
Oi Heino. Muito obrigado por participar do canal. Realmente, isso aparentemente resolve. Abraço da Equipe Canal Brincando com Ideias.
Obrigado Gideon!
Oi Sidnei. Muito Obrigado pela sua participaçÃĢo.
GostarÃamos de aproveitar a oportunidade para sugerir que assista a uma aula online gratuita. cursodearduino.net/aula-online
Acompanhe nosso canal no Telegram: t.me/canal_brincando_com_ideias
Acompanhe nosso canal no Instagram instagram.com/brincandocomideias/
Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho.
Um forte abraço da Equipe Canal Brincando com Ideias, e um abraço tambÃĐm para o Gideon.
Muito bom Mestre! Valeu por compartilhar e parabÃĐns pela didÃĄtica. (Aos entusiastas da linguagem C, aceitem que ÃĐ BUG! O compilador deveria exigir a inicializaçÃĢo da variÃĄvel. VÃĢo falar que ÃĐ pilha, que ÃĐ lixo e etc... Mas nÃĢo importa. à BUG! ðð).
Oi Cmacma. Muito obrigado por participar do canal e pela sua opiniÃĢo. A questÃĢo do bug ÃĐ porque o comandodentro do if foi executado, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
NÃĢo ÃĐ Bug, esta no padrÃĢo da linguagem, simples assim. Ã como entrar em um carro e querer que ele voe achando que ÃĐ um aviÃĢo.
@@BrincandocomIdeias a partir do momento que vocÊ acessou a variÃĄvel nÃĢo inicializada o programa foi para um estado inconsistente. Lembre-se que o compilador otimiza o cÃģdigo e muitas vezes variÃĄveis e blocos inteiros sÃĢo removidos, sem afetar a lÃģgica do programa. Mas para que isso ocorra, seu programa deve estar bem formado, o que nÃĢo ÃĐ o caso deste exemplo.
Fiquei orgulhoso que notei o que poderia ser o bug antes da revelaçÃĢo ðĪĐ
Oi Geraldo. Muito obrigado por participar do canal. Muito bom. ParabÃĐns. Isso indica sua boa percepçÃĢo. Abraço da Equipe Canal Brincando com Ideias.
Adorei a dica. Realmente tenho costume de nÃĢo declarar valor. Show de bola.
Oi Rogerio. Muito obrigado. Abraço da Equipe Canal Brincando com Ideias.
FlÃĄvio, existe uma recomendaçÃĢo (boas prÃĄticas) para quem programa, sobretudo em C. A recomendaçÃĢo ÃĐ de sempre atribuir um valor ao iniciar uma variÃĄvel, como vocÊ fez.
Oi Gustavo. Muito obrigado por participar do canal e pela sua explicaçÃĢo. O problema nÃĢo ÃĐ a variÃĄvel. à porque o comando dentro do if foi executado, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
OK, sempre valor inicial sempre.
Oi, sou desenvolvedor tb dÊs de a dÃĐcada de 90, FlÃĄvio dÃĄ uma geral de boas prÃĄticas de programaçÃĢo para o pessoal...
Ao estilo de "CÃģdigo Limpo", o livro.
Oi Mauro. Muito obrigado por participar do canal e pela sugestÃĢo. Talvez façamos esse vÃdeo. Abraço da Equipe Canal Brincando com Ideias.
Prof. Flavio concordo com Filipe Fernandes, isso ÃĐ erro de programaçÃĢo, deve-se ao declara a viariÃĄvel estadoLeds atribuir um valor padrÃĢo de 0zero, assim ela carrega e inicia sem valor e ao pressionar liga, isto ÃĐ uma dificuldade de organizar e declarar variÃĄveis, fiz meu Tcc todo com ARDUINO UNO, e funciona normal. Boa sorte, abs Flavio Fabricio de Sao Jose dos Campos
Oi Fabricio. Muito obrigado por participar do canal.O bug ao qual nos referimos, ÃĐ porque o comando dentro do if foi executado sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
@@BrincandocomIdeias professor Flavio eu preciso falar com o Sr por Whatsapp se for possivel? Vou deixar meu zap, ÃĐ melhor pessoalmente ou por audio aguardo sua msg 12-991755820 ÃĐ sobre manutençao em um projeto meu em Arduino, estou online o dia todo aguardo sua ligaçao
Grato Fabricio
Bug ou nÃĢo, a informaçÃĢo ÃĐ muito relevante, e vou guardar ou me lembrar pra os meus proximos projetos. Obrigado professor!
Oi trashfilmes. Muito obrigado. Que bom que gostou do vÃdeo.
Se vocÊ deseja:
Avançar ainda mais no universo Arduino,
Ter acesso a um conteÚdo organizado, que vocÊ pode acessar tanto pelo celular quanto pelo computador
Participar semanalmente do Encontro com os Alunos com o prof. FlÃĄvio, um espaço onde vocÊ poderÃĄ tirar dÚvidas, apresentar seus projetos, debater ideias
e soluçÃĩes e ainda bater um papo tecnolÃģgico expandindo seus horizontes,
Acesso a uma equipe preparada para tirar suas dÚvidas enquanto estuda,
Acesse nossa pÃĄgina: brincandocomideias.com.br/#meus-cursos
E escolha o curso certo para vocÊ.
NÃĢo esqueça de deixar um Like.
Um forte abraço da Equipe do canal Brincando com Ideias.
Quebrei a cabeça por uma semana com algo parecido.. Realmente a gente procura em tudo q eh lugar.. No meu caso eram vÃĄrios 'ifs' e deveria usar alguns 'else ifs'. Esse tipo de informaçÃĢo ÃĐ sempre muito relevante. Obrigado por compartilhar pro mundo!
Oi PNG. Muito obrigado por participar do canal. E valeu por compartilhar sua experiÊncia. Abraço da Equipe Canal Brincando com Ideias.
@@BrincandocomIdeias Montei um atendimento tipo URA pra minha empresa usando um UNO (1 serial sÃģ..), um MP3 mini e um SIM 800. AlÃĐm de usar trechos de seus sketches, muita informaçÃĢo foi Útil pra concluir esse desafio.. 3 comunicaçÃĩes seriais em um micro de 1 serial.. E sem entender quase nada de programaçÃĢo.. Muito grato por todo o conhecimento!
Oi Flavio, qualquer memÃģria que se declare sem inicializaçÃĢo tem seu valor randÃīmico, isto acontece porque a ÃĄrea de memÃģria RAM do microcontrolador nÃĢo tem valor especÃfico, ou seja, o fabricante nÃĢo colocar um circuito que force um valor. Um valor prÃĐ determinado ÃĐ iniciado no SFR (Special Function Register), ai sim o fabricante coloca circuito para iniciar com um valor correto. Um exemplo disto ÃĐ o registrador DDR (Data Direction Register) que tem que ter seu valor igual a 0 para iniciar as portas como entrada. Uma soluçÃĢo para isto ÃĐ como vocÊ disse, forçar um valor na declaraçÃĢo da variÃĄvel ou declarar como static. Isto nÃĢo ÃĐ um BUG do compilador, ele sÃģ esta fazendo oque a norma ANSI ISO C99 diz. Um abraço
Oi QSP. Muito obrigado por participar do canal e pela sua explicaçÃĢo. O detalhe ÃĐ que o bug nÃĢo estÃĄ na variÃĄvel. e sim porque o comando dentro do if foi executado sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
Esse video valeu demais!
Oi Francisco. Muito obrigado. Abraço da Equipe Canal Brincando com Ideias.
Por programar em php tenho a mania de sempre criar as variÃĄveis com um valor jÃĄ definido sempre, mas conhecimento nunca ÃĐ demais! ParabÃĐns pela descoberta e espero que seja corrigido logo para que outras pessoas nÃĢo passem por isso
Oi Thiago. Muito obrigado por participar do canal. Isso aÃ. Sempre que pudermos divulgar informaçÃĩes Úteis, faremos. Abraço da Equipe Canal Brincando com Ideias.
Muito bom o vÃdeo, FlÃĄvio e equipe. Tive que assistir umas 5 vezes, pois eu nÃĢo estava acreditando como o Arduino executou esse cÃģdigo. Percebi que muitos nÃĢo entenderam o bug. EstÃĢo falando do lixo de memÃģria na variÃĄvel *estadoLeds* . Mas, os âexcelentes programadoresâ de comentÃĄrios, e muito arrogantes, nÃĢo perceberam que o problema ÃĐ no: *If(!estado_bt1)* (linha 21) 8:02
Como foi possÃvel entrar no if (na linha 21) sem que o if(!estado_bt1) fosse validado,
executar a instruçÃĢo *estadoLeds = 80*; (linha 23)
e nÃĢo executar o *Serial.println(âpassou pelo ponto 1â);* (linha 22) ?
O caso da variÃĄvel *estadoLed* nÃĢo ter sido declarada e atribuÃda um valor, nÃĢo implica no comportamento do *if* testando a variÃĄvel *estado_bt1*.
Obrigado pelas Ãģtimas aulas.
Exatamente. O pessoal achando q o problema ÃĐ a variÃĄvel do LED. Mas, o bug ÃĐ como entrou no IF sem validar.
Oi Rodrigo. Muito obrigado. E obrigado tambÃĐm por sua opiniÃĢo. Grande Abraço da Equipe Canal Brincando com Ideias.
NÃĢo se trata de bug, ao criar uma variÃĄvel, a mesma ÃĐ vinculada a um espaço fÃsico na memÃģria "denominada registrador". Consultando o datashet nota-se que a memÃģria podem vir com valores indeterminados ( 0 ou 1 ), o fabricante informa que ao criar um rÃģtulo que nesse caso ÃĐ uma variÃĄvel ÃĐ imprescindÃvel acompanhar seu valor inicial. Portanto, nÃĢo se trata de um "bug" e sim de um ERRO no momento da programaçÃĢo que se encontra em desacordo com o datashet do microcontrolador utilizado no arduÃno.
Excelente dica FlÃĄvio! VocÊ tem algum post com rÃĄdio LoRa? Ou poderia me indicar? Preciso programar um par cliente/Servidor para ÃĄrea rural com alcance de 1500m
Oi Carlos. Muito obrigado por prticipar do canal. Infelizmente ainda nÃĢo temos nada sobre LoRa. Estamos estudando esta comunicaçÃĢo para podermos trazer um vÃdeo de qualidade. GostarÃamos de aproveitar a oportunidade para sugerir que assista a uma aula online gratuita.
cursodearduino.net/aula-online
Acompanhe nosso canal no Telegram: t.me/canal_brincando_com_ideias
Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho.
Abraço da Equipe Canal Brincando com Ideias.
Programo em "C" a mais de 20 anos e nunca tive este tipo de problema porque sempre que crio uma variÃĄvel eu inicio ela com um valor porque, ao ser criada uma variÃĄvel ÃĐ alocada uma posiçÃĢo de memÃģria para armazena-la e o conteÚdo desta posiçÃĢo de memÃģria ÃĐ atribuÃdo a variÃĄvel se ela nÃĢo for iniciada.
if (count >= 100) {
noInterrupts(); //desliga a interrupçÃĢo
count = 0;
delay(5000); //NÃO EXECUTA O TEMPO
} else if (count == 0) {
count = 1;
interrupts(); //liga a interrupçÃĢo
}
Pessoal estÃĄ correto o vÃdeo do professor FlÃĄvio. O fato de nÃĢo ter inicializado a variÃĄvel foi sim um problema. Mas o bug estÃĄ justamente no que ele explicou...com a variÃĄvel nÃĢo inicializada, ele teria que ler esse "lixo" da variÃĄvel e passar ou nÃĢo pelo if. o problema foi que com esse valor indefinido da variÃĄvel ele executou "metade do if" e isso sim ÃĐ um bug. Como ele disse, inicializando a variÃĄvel com um valor cessou o bug.
Boa noite FlÃĄvio. Isso me faz pensar que vÃĄrias vezes a lÃģgica que fiz nÃĢo replicava...
à partir de hoje, todas variÃĄveis pÚblicas e valor definido!
Ãtimo vÃdeo, abraço.
Oi JOsÃĐ. Muito obrigado por participar do canal e pela sua opiniÃĢo. De fato, vamos recomendar sempre no canal. Abraço da Equipe Canal Brincando com Ideias.
Oi Flavio, eu construà um projeto de Joystick Mache com o Arduino Leonardo. Estou tendo problemas com os analÃģgicos pois eles nÃĢo param de tremer. jÃĄ tentei aterramento nas saÃdas analÃģgicas nÃĢo utilizadas mas nÃĢo surtiu muito efeito. Estou utilizando potenciÃīmetros B10K e testei com o A10K e B50K. O que eu deveria fazer para resolver esse problema de tremedeira nos analÃģgicos?
Legal a aula, jÃĄ me aconteceu isso, com outro compilador e microcontrolador, e realmente variÃĄveis nÃĢo carregadas porem dar esse tipo de problema.
No caso de nÃĢo ter passado no 1š if , a variÃĄvel pode ter pego lixo da ram quando foi alocada dendro da passagem do loop.
Oi Paulo. Muito obrigado. E obrigado tambÃĐm por seu comentÃĄrio. Abraço da Equipe Canal Brincando com Ideias.
Numa aula de linguagem c na faculdade o professor fez um cÃģdigo justamente pra os alunos verem o lixo numa variÃĄvel nÃĢo iniciada, mas o que o vÃdeo mostra nÃĢo ÃĐ o bug com relaçÃĢo a isso, e sim por qual motivo o valor dentro do if foi aparece na variÃĄvel????? Acho que todos sabem que se a condiçÃĢo do if nÃĢo for satisfeita entÃĢo o programa pula para a linha depois das chaves {}, eu mesmo jÃĄ viu muito isso na prÃĄtica debugando passo a passo programas em microcontroladores PICs, e dÃĄ pra ver o programa pulando tudo que ta dentro das chaves do if nessa situaçÃĢo. EntÃĢo o bug NÃO se trata de aparecer um valor qualquer na variÃĄvel nÃĢo iniciada, O BUG à O PROGRAMA NÃO PULAR O QUE Tà DENTRO DAS CHAVES DE UM IF NÃO VALIDADO.
Oi Josinaldo. Muito obrigado por participar do canal e pela sua opiniÃĢo. Isso foi o que tentamos explicar no vÃdeo, mas parece que isso nÃĢo foi entendido. Talvez façamos outro vÃdeo. Abraço da Equipe Canal Brincando com Ideias.
@@BrincandocomIdeias DEsculpe, mas o que vocÊ parece nÃĢo entender, ÃĐ que vocÊ criou um programa onde nÃĢo existe garantia nenhuma da linguagem que a saÃda do compilador vai ser correta. O programa ÃĐ mal formado e a especificaçÃĢo da linguagem deixa claro que nesse caso, nÃĢo existe garantia que seu programa vai funcionar como esperado.
@@bcsanches Desculpe, mas o que vocÊ parece nÃĢo entender ÃĐ que o vÃdeo se refere a um comportamento nÃĢo esperado do programa, o qual foi ler o conteÚdo entre das chaves de um if nÃĢo validado, e esse ÃĐ o bug a que se refere o vÃdeo. Em lugar nenhum foi dito que o programa deveria ser exatamente como foi escrito e nem que tinha que ter garantia de funcionamento da forma que foi escrito. Mas atÃĐ agora todos que vÊm batendo nessa tecla nÃĢo responderam o por quÊ do comportamento citado no vÃdeo: POR QUE O PROGRAM LEU O CONTEÃDO DENTRO DAS CHAVES DO IF NÃO VALIDADO AO INVÃS DE PULAR PARA A PRÃXIMA LINHA APÃS AS CHAVES?????? Uma variÃĄvel nÃĢo declarada nÃĢo deveria afetar o comportamento do if, se isso nÃĢo ÃĐ um bug, o que ÃĐ entÃĢo? Vamos fazer uma analogia: se alguÃĐm nÃĢo tiver higiene pode contrair uma doença infectocontagiosa, mas isso nÃĢo quer dizer que a pessoa pode contrair uma tendinite por falta de higiene, pois a falta de higiene nÃĢo afeta de maneira nenhuma o mecanismo de surgimento da tendinite. Ou seja, o que se estaria questionando nÃĢo ÃĐ contrair uma doença infecto contagiosa por falta de higiene, pois isso todos sabem que ÃĐ possÃvel, mas a questÃĢo seria como ÃĐ possÃvel contrair uma doença que nÃĢo ÃĐ infectocontagiosa por falta de higiene?
@@josenildo.galdino sim, eu entendo todos estarem assutados pelo if nÃĢo funcionar. Mas entenda: vocÊs fizeram algo que a linguagem nÃĢo define comportamento algum e nÃĢo lhe da garantias. Por isso o if falha. VocÊ olhou o disassembly do cÃģdigo? Postei links aqui, de uma olhada. Como a construçÃĢo ÃĐ invÃĄlida, o compilador simplesmente se perde. NÃĢo ÃĐ bug, ÃĐ comportamento indefinido. Podem postar bugs em tudo quanto ÃĐ compilador C/C++ que eles vÃĢo apresentar isso e todos vÃĢo fechar o bug como nÃĢo sendo bug.
@@josenildo.galdino a linguagem possui regras, se vocÊ infringe as regras, o compilador tambÃĐm nÃĢo lhe da garantias que vai seguir as regras. Regra bÃĄsica de quem programa em C: o compilador assume que o programador sabe o que esta fazendo e desculpe, insistir que isso dai ÃĐ bug do compilador, mostra que o programador nÃĢo sabe o que esta fazendo.
Em LÃģgica TTL, sem sinal de entrada ÃĐ interpretado como nÃvel alto, pode ser isso que ocorre com variÃĄvel sem valor na memÃģria de hardware.
Em Pascal uma variÃĄvel ÃĐ declarada sem valor, em Java deve ser declarada com valor. Quando comecei programar para Arduino sempre declarei variÃĄvel com valor acho uma boa prÃĄtica.
Oi JosÃĐ. Muito obrigado por participar do canal e pela sua opiniÃĢo. Destacamos que o bug nÃĢo se refere a variÃĄvel, e sim, porque o comando dentro do if foi executado, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
OlÃĄ excelente canal.
Poderia fazer um leitor de PH com LCD? Estou tentando fazer mas nÃĢo tÃĄ rolando .
OI DC Pesca. Muito Obrigado pela sua participaçÃĢo.
NÃģs ainda nÃĢo temos nenhum sensor deste tipo, mas vocÊ pode se basear em outros sensores que mostramos no canal. A forma de ler um sensor analÃģgico nÃĢo diferencia muito entre um e outro. à aconselhÃĄvel que teste cada dispositivo separadamente para saber se todos estÃĢo funcionando bem. Observe tambÃĐm a alimentaçÃĢo, pois alÃĐm da tensÃĢo elÃĐtrica, existe a corrente que ÃĐ tÃĢo importante quanto. No cursodearduino.net vocÊ aprenderÃĄ a eletrÃīnica e a programaçÃĢo necessÃĄrias para desenvolver seus projetos com arduinos e micro controladores. Ainda contarÃĄ com uma equipe de suporte para tirar dÚvidas e um encontro semanal com o prof. Flavio, seus assistentes e os demais alunos para tirar dÚvidas, apresentar projetos, debater ideias e soluçÃĩes, e atÃĐ mesmo bater um papo tecnolÃģgico. GostarÃamos de aproveitar a oportunidade para sugerir que assista a uma aula online gratuita. cursodearduino.net/aula-online
Acompanhe nosso canal no Telegram: t.me/canal_brincando_com_ideias
Acompanhe nosso canal no Instagram instagram.com/brincandocomideias/
Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho.
Um forte abraço da Equipe Canal Brincando com Ideias.
Ãtima dica mestre! Nunca ia imaginar esse bug no compilador.
Queria fazer um pedido, poderia ensinar a renomear e mudar a senha do modulo bluetooth HC-06. Algumas aplicaçÃĩes ficam vulnerÃĄveis com a senha de fÃĄbrica. Grato!
Oi Rildo. Muito obrigado Estudaremos as possiblidade e se possÃvel, traremos um vÃdeo para o canal. Abraço da Equipe Canal Brincando com Ideias.
Isto nÃĢo ÃĐ bug, o q houve foi a leitura de uma variÃĄvel antes dela ser iniciada. Quando uma variÃĄvel ÃĐ declarada, ela aponta para algum lugar da memÃģria, mas nÃĢo a zera e pode conter qualquer valor q ali estava (lixo), sÃģ apÃģs iniciar a variÃĄvel (atribuir um primeiro valor) q ela ÃĐ realmente definida.
O problema ÃĐ que o comando dentro do if foi executado, mesmo seo o if ter sido validado
Valeu professor obrigado
Quando nÃĢo atribuÃmos um valor ao declarar a variÃĄvel o valor assumido ÃĐ inesperado. Nesse caso o compilador buscou no cÃģdigo qualquer comando que lhe atribuisse valor. Provavelmente para otimizaçÃĢo do cÃģdigo. Mas a melhor prÃĄtica ÃĐ sempre atribuir valores ai declarar um inteiro.
ParabÃĐns Prof FlÃĄvio, acredito que revivemos a histÃģria do ovo de Colombo. Muito obrigado por facilitar a evitar alguns tropeços! AbraçÃĢo!
Oi Magic. Muito obrigado por participar do canal. Abraço da Equipe Canal Brincando com
Show de bola!
Oi JoÃĢo. Muito obrigado. Abraço da Equipe Canal Brincando com Ideias.
Nooossa, tambÃĐm faço o curso de arduino, tive o mesmo problema durante a aula de if, sÃģ que achei outra soluçÃĢo, mas achei que eu estava errado na ÃĐpoca...
Oi Pedro. Muito obrigado por participar do canal Pois ÃĐ. . Acreditamos que outros alunos tambÃĐm tenham encontrado problemas. Mas agora vamos adotar o habito de sempr iniciar a variÃĄvel. Abraço da Equipe Canal Brincando com Ideias.
VÃdeo fail kkkkk acontece nos melhores canais! afinal, ninguÃĐm sabe tudo. De qualquer forma agora surge a oportunidade de um novo vÃdeo explicando de forma correta o real motivo do problema ocorrido no cÃģdigo. Forte abraço meu nobre, teu canal ÃĐ excelente e me ajuda bastante.
Oi Danilo. Muito obrigado por participar do canal. Pois ÃĐ. Achamos que vai ser preciso outro vÃdeo mesmo. rsrsrsrs.Abraço da Equipe Canal Brincando com Ideias.
Realmente... a maioria do pessoal nÃĢo entendeu o problema... Se o if fosse na variÃĄvel indefinida (estadoLeds) atÃĐ tudo bem... Mas o programa entrou num if de outra variÃĄvel que teoricamente nÃĢo era nem pra entrar... Ele atribuiu valor pra variavel EstadoLeds apÃģs verificar como falso um valor true... e a galera insiste em falar de lixo memÃģria...
Fala professor poderia fazer um video falando sobre interferencias eletricas para a rapaziada que usa arduino para controlar cnc
Oi Yoshi. Muito obrigado por participar do canal e pela sugestÃĢo. Vamos estudar. Abraço da Equipe Canal Brincando com Ideias.
fala flavio que top em eu quebrei a cabeça tentando ver oque poderia ser o problema mas sem chanse so depois de vc falar e mostrar msm pra eu entender kkkk
valeu pela esplicaçÃĢo.
Estou tentando fazer uma bomba fack de airsoft .
vc tem algum video de lcd com I2c e teclado 4x4 ?
Oi Carlos. Muito Obrigado pela sua participaçÃĢo.
Pois ÃĐ. Pequenos detalhes que fazem muita diferença. Quanto aos dispositivos que mencionou, temos ambos, mas em vÃdeos separados, mas nÃĢo ÃĐ difÃcil juntÃĄ-los em um unico projeto. Com as devidas bibliotecas instaladas, vocÊ tambÃĐm pode encontrar as programaçÃĩes bÃĄsicas nos sketchs de exemplos. GostarÃamos de aproveitar a oportunidade para sugerir que assista a uma aula online gratuita. cursodearduino.net/aula-online
Acompanhe nosso canal no Telegram: t.me/canal_brincando_com_ideias
Acompanhe nosso canal no Instagram instagram.com/brincandocomideias/
Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho.
Um forte abraço da Equipe Canal Brincando com Ideias.
Colocar um valor inicial ÃĐ uma prÃĄtica recomendada, principalmente em C que nÃĢo "limpa" a variÃĄvel quando criada. PorÃĐm o compilador tem um bug mesmo e esse procedimento nÃĢo ÃĐ uma vacina, seria bom informar isso aà para os desenvolvedores da IDE.
Oi Johm. Muito obrigado por participar do canal e por seus comentÃĄrios. Grande Abraço da Equipe Canal Brincando com Ideias.
Se a lÃģgica estÃĄ certa, mas nÃĢo atribuiu um valor antes, a lÃģgica estÃĄ errada. NÃĢo ÃĐ um bug, ÃĐ inexperiÊncia do programador.
Oi Ceticismo. Muito obrigado por participar do canal. Na verdade, o bug nÃĢo estÃĄ na variÃĄvel. O bug ÃĐ que o arduino executou o comando dentro do if, sem ter executado o if. Abraço da Equipe Canal Brincando com Ideias.
Show
Oi Carlos. Muito obrigado. Que bom que gostou. GostarÃamos de aproveitar a oportunidade para sugerir que assista a uma aula online gratuita. cursodearduino.net/aula-online
Acompanhe nosso canal no Telegram: t.me/canal_brincando_com_ideias
Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho.
Um forte abraço da Equipe Canal Brincando com Ideias.
OlÃĄ, boa tarde, tudo bem? Veja, eu jÃĄ vi alguns botÃĩes push button que sem pressionÃĄ-los ele apresenta contato fechado (push button nc) e quando vocÊ o pressiona, ele apresenta contato aberto. E existe tambÃĐm os abertos (push button no), isso tambÃĐm pode acarretar este mesmo bug (que nÃĢo ÃĐ bug). Depois reproduzirei a lÃģgica dele para ver isso e pela sua explicaçÃĢo, entendo que nÃĢo ÃĐ um bug, portanto, e sim um problema e declaraçÃĢo, sem inicializÃĄ-la e declarada dentro do procedimento, certo ou me equivoco. Obrigado
Oi Leandro. Muito obrigado por participar do canal e pela sua opiniÃĢo. De fato existe mesmo esse problema com chaves mecÃĒnicas, mas isso resolve-se com o debounce que jÃĄ foi mostrado aqui no canal e que ÃĐ parte integrante do nosso curso de arduino. O problema aqui foi o arduino ter executado o comando dentro do if, sem o if ter sido validado. DÃĄ para ver pelo debug que fizemos, que o botÃĢo mantÃĐm o mesmo nÃvel lÃģgico, mas mesmo assim, o comando ÃĐ executado. Abraço da Equipe Canal Brincando com Ideias.
Vlw FlÃĄvio.... JÃĄ passei por isso ð
Oi Emanoel. Muito obrigado por participar do canal. Pelo visto, vÃĄrios jÃĄ passaram por isso. Valeu por compartilhar sua experiÊncia. Abraço da Equipe Canal Brincando com Ideias.
enum { PinA = 2, PinB = 3, ints = INPUT_PULLUP };
static byte abpre;
volatile int count;
int pre_count;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
pinMode(PinA, ints);
pinMode(PinB, ints);
attachInterrupt(0, conta_pulso, CHANGE); // Inicializa int0 e configura como mudança de estado
attachInterrupt(1, conta_pulso, CHANGE); // ,,,,,,,,,, int1
abpre = count = pre_count = 0;
Serial.begin(115200);
}
// Rotina de int
void conta_pulso() {
enum { upMax = 0x66, downMax = 0x99 };
byte abnovo = (digitalRead(PinA)
Mestre nÃĢo faltou informar o valor inicial para a saÃda ? No void setup
Oi Daniel.Muito Obrigado pela sua participaçÃĢo e pelo seu comentÃĄrio. GostarÃamos de aproveitar a oportunidade para sugerir que assista a uma aula online gratuita. cursodearduino.net/aula-online
Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho.
Um forte abraço da Equipe Canal Brincando com Ideias.
Nosso canal no Telegram: t.me/canal_brincando_com_ideias
Nosso canal no Instagram instagram.com/brincandocomideias/
Eu realmente tive um bug quando usei um sensor Hall ligado a porta analÃģgica para marcar a posiçÃĢo inicial de um motor de passo. Depois de alguns dias, o arduino travava. Foi sÃģ remover o Hall que rodou perfeitamente. Alguma interferÊncia do componente na parte de hardware. Fica uma dica.
Oi Mariano. Muito Obrigado pela sua participaçÃĢo e por compartilhar sua experiÊncia com a gente. Dica anotada. Tentaremos encontrar soluçÃĩes, caso tenhamos uma situaçÃĢo parecida. VocÊ tambÃĐm pode contar com os seguintes cursos online:cursodearduino.net/principiantes, cursodearduino.net e cursodearduino.net/avancado.
AlÃĐm de todo o conteÚdo organizado dos cursos, vocÊ Ainda conta com nosso grupo de whats app para interagir com os demais alunos e com a equipe de suporte que estarÃĄ pronta para responder suas dÚvidas com relaçÃĢo ao conteÚdo das aulas.
Nos cursos de arduino e arduino avançado, vocÊ tambÃĐm poderÃĄ participar do encontro semanal, via zoom, com o prof. Flavio, seus assistentes e os demais alunos onde vocÊ poderÃĄ tirar dÚvidas, apresentar seus projetos, debater ideias e soluçÃĩes e ainda bater um papo tecnolÃģgico onde todos aprendem muito.
Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho.
Um forte abraço da Equipe Canal Brincando com Ideias.
Estou impressionado com a quantidade de programadores que dizem nÃĢo ser um bug do compilador. SerÃĄ que nÃĢo viram a atribuiçÃĢo 80 ser executada sem entrar na funçÃĢo?
VocÊ viu o cÃģdigo que o seu compilador gerou? vocÊ conhece a especificaçÃĢo da linguagem? Estou impressionado com a quantidade de pessoas que dizem programadores de C e C++ e nÃĢo conhececm a definiçÃĢo da linguagem e suas regras bÃĄsicas.
A definiçÃĢo da linguagem diz claramente que acessar variÃĄveis automÃĄticas (ou locais) sem inicializaçÃĢo leva o programa a um estado indefinido. Logo, nÃĢo existe garantia alguma que seu programa vai se comportador como vocÊ espera.
Impressiona tambÃĐm a quantidade de pessoas que acha que o compilador vai gerar o cÃģdigo exatamente como vocÊ quer, ele vai gerar um cÃģdigo que de o resultado que vocÊ espera, nÃĢo como vocÊ digitou. Qualquer otimizador vai rapidamente eliminar essas variÃĄveis pois sÃĢo desnecessÃĄrias no cÃģdigo final e como temos uma variÃĄvel nÃĢo inicializada, o if vai para o espaço...
Veja aqui o cÃģdigo gerado por um compilador nesse caso: godbolt.org/z/7pZ-n_
Viu, nada de if... inicialize a variÃĄvel, que muda completamente a geraçÃĢo de cÃģdigo.
*Simples, use um inseticida e prontinho!*
STONKS ð
Oi Bribil. Muito obrigado pela sugestÃĢo. rsrs Quem dera fosse tÃĢo fÃĄcil. Abraço da Equipe Canal Brincando com Ideias.
NÃĢo seria melhor deixar ela como uma variÃĄvel publica sem um valor setado para economizar espaço na memoria do ArduÃno no caso de programas maiores ?
Oi Devison. Muito obrigado por participar do canal. O fato ÃĐ que nÃĢo ÃĐ a variÃĄvel o problema. à o porque o arduino ter executado o comando dentro do if, sem o if ter sido validado. Abraço da Equipe Canal Brincando com Ideias.
FlÃĄvio, preciso da sua ajuda, o meu ArduÃno nÃĢo estÃĄ funcionando, eu quero fazer um LED piscar, mas nÃĢo consigo, e eu sempre confiro tudo como: programaçÃĢo e o sistema na proto board, confiro a porta (COM4) , coloco o resistor e nÃĢo da certo, oque vocÊ sugira que eu faça??????
Oi Murilo. Continue tentando coisas diferentes. Troque a porta do arduino. Tente outro resistor.Procure substituir jumpers. Utilize sketchs prontos da aba de exemplos. à difÃcil dar palpites sem estar com o problema em mÃĢos. Abraço da Equipe Canal Brincando com Ideias.
#define ledvm 2
#define bt1 8
void setup()
{
pinMode(ledvm, OUTPUT);
pinMode(bt1, INPUT_PULLUP);
}
void loop()
{
digitalWrite(ledvm, !digitalRead(bt1));
}
isso resolve!
Oi Tecno. Muito Obrigado pela sua participaçÃĢo e pelo comentÃĄrio.
VocÊ tambÃĐm pode contar com os seguintes cursos online:
Curso de Arduino para principiantes> cursodearduino.net/principiantes,
Curso de Arduino 2.0> cursodearduino.net
Curso de Arduino Avançado> cursodearduino.net/avancado
AlÃĐm de todo o conteÚdo organizado dos cursos, vocÊ Ainda conta com nosso whats app para interagir com a equipe de suporte que estarÃĄ pronta para responder suas dÚvidas com relaçÃĢo ao conteÚdo das aulas.
VocÊ tambÃĐm poderÃĄ participar do encontro semanal, via zoom, com o prof. Flavio, seus assistentes e os demais alunos onde vocÊ poderÃĄ tirar dÚvidas, apresentar seus projetos, debater ideias e soluçÃĩes e ainda bater um papo tecnolÃģgico onde todos aprendem muito.
Acesse nossas pÃĄginas para saber mais.
Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho.
Um forte abraço da Equipe Canal Brincando com Ideias.
Deve ser coincidÊncia, mas eu tive um problema muito estranho com o pino 8 do Arduino: quando preciso que o pino 8 trabalhe numa determinada frequÊncia ele começa a perder tensÃĢo. JÃĄ ocorreu duas vezes comigo, em dois cÃģdigos diferentes e com placas diferentes. O resultado ÃĐ que eu sempre evito utilizar o pino 8 em qualquer projeto.
Oi Samuel. Muito obrigado por participar do canal. Curioso. Merecia mais testes, sÃģ por diversÃĢo. Abraço da Equipe Canal Brincando com Ideias.
Na minha opiniÃĢo toda variÃĄvel deve ser inicializada com um valor.
Oi Rafael. Muito Obrigado pela sua participaçÃĢo e pela opiniÃĢo. Concordamos totalmente. Tanto que fizemos o vÃdeo para mostrar o que pode acontecer. GostarÃamos de aproveitar a oportunidade para sugerir que assista a uma aula online gratuita. cursodearduino.net/aula-online
Acompanhe nosso canal no Telegram: t.me/canal_brincando_com_ideias
Acompanhe nosso canal no Instagram instagram.com/brincandocomideias/
Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho.
Um forte abraço da Equipe Canal Brincando com Ideias.
@@BrincandocomIdeias concordo plenamente e atÃĐ respondi a um comentÃĄrio em que o autor defendia a implementaçÃĢo do arduino. Eu acho a plataforma incrÃvel, mas bugs sÃĢo sempre esperados e ainda bem que existem canais como o seu para ensinar como dribla-los enquanto nÃĢo sai a correçÃĢo. Nesse caso, a soluçÃĢo nÃĢo irÃĄ impactar em nada quando a correçÃĢo sair. ParabÃĐns pelo canal.
Tenho um projeto onde tem balança, leitor de cor, ldr e vÃĄrios outros componentes eu tenho um botÃĢo pull UP e quando aperto ele o arduÃno trava, descobri que quando desconecto os fios do LCD ele nÃĢo trava, quando conecto os fios do LCD ele volta a travar, fios nÃĢo estÃĄ frouxo, a alimentaçÃĢo pode ser externa ou na do arduÃno e acontece do mesmo jeito.. o q pode ser?
Oi CafÃĐ Dutin. Muito obrigado pela sua participaçÃĢo.
A princÃpio, pensamos na alimentaçÃĢo. AlÃĐm da tensÃĢo, a fonte precisa ter uma corrente(Amperes) suficiente para todos os dispositivos. Usando fontes externas, todos os negativos destas fontes e o GND do arduino, precisam estar conectados. Quando remove o display e o projeto funciona, estÃĄ removendo somente do circuito, ou estÃĄ removendo da programaçÃĢo tambÃĐm? Se ÃĐ somente do circuito, o mais provÃĄvel seria alimentaçÃĢo mesmo. tente deixar o display ligado e remover outro dispositivo para ver se o problema continua. Ou tente um sketch somente com o display, para saber se nÃĢo ÃĐ defeito do dispositivo. Se vocÊ deseja:
Avançar ainda mais no universo Arduino,
Ter acesso a um conteÚdo organizado, que vocÊ pode acessar tanto pelo celular quanto pelo computador
Participar semanalmente do Encontro com os Alunos com o prof. FlÃĄvio, um espaço onde vocÊ poderÃĄ tirar dÚvidas, apresentar seus projetos, debater ideias
e soluçÃĩes e ainda bater um papo tecnolÃģgico expandindo seus horizontes,
Acesso a uma equipe preparada para tirar suas dÚvidas enquanto estuda,
Acesse nossa pÃĄgina: brincandocomideias.com.br/#meus-cursos
E escolha o curso certo para vocÊ.
NÃĢo esqueça do Like e Compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho.
Um forte abraço da Equipe do canal Brincando com Ideias.
@@BrincandocomIdeias obrigado pela atençÃĢo, se isso ajudar vcs, o meu problema foi o seguinte, no meu projeto tem calha vibratÃģria e quando eu ligava o vibrador o arduÃno travava, dava uns pesos fantasmas, quando conectava o LCD o arduÃno reiniciava sozinho, e eu jÃĄ hÃĄ uns 2 meses quebrando a cabeça resolvi ontem pra cÃĄ soldar todos os fios e coneccoes existente sem ter nenhum encaixe nos fios, isso resolveu todos os problemas com travamento, desligamento, pesos fantasmas e etc. Obrigado aà pelo comentÃĄrio e Deus abençoe vcs.
Realmente nÃĢo ÃĐ um bug, uma variÃĄvel sem um valor inicial pode receber qualquer valor aleatÃģrio.
Oi Ivanildo. Muito obrigado por participar do canal. O problema nÃĢo estÃĄ na variÃĄvel, e sim porque o comando dentro do if foi executado, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
Um antigo professor sempre me dizia: âSe declarar uma variÃĄvel, inicialize elaâ. Acho q esses bugs fazem parte de qualquer linguagem de programaçÃĢo. TÃī querendo fazer esse curso kkk
Oi Jailson. Muito obrigado por participar do canal. Seu professor estÃĄ certÃssimo. A questÃĢo do bug nÃĢo foi a variÃĄvel, e sim o porque de executar uma açÃĢo que estÃĄ dentro do if sem ter entrado do if. Acompanhe nosso canal no o Instagram instagram.com/canalbrincandocomideias.
Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho.
Abraço da Equipe Canal Brincando com Ideias.
@@BrincandocomIdeias Pessoal, parabÃĐns pelo canal e pela gentileza e humildade de compartilhar o conhecimento conosco. Em breve estarei com vcs no curso de Arduino. Abraços
Vamos usar outra porta pra ver se o bug continua! O pessoal nÃĢo entendeu que o programa estÃĄ entrando no if, portanto, nÃĢo ÃĐ lixo na memÃģria. Grande abraço!!!!!
Oi Samir. Muito obrigado por participar do canal. Pois ÃĐ.Acho que nÃĢo entenderam mesmo esse ponto.Abraço da Equipe Canal Brincando com Ideias.
FlÃĄvio meu nome ÃĐ josias, mim ajuda ai, baixei um app Evericircuit e estou tentando faser o motor funciona mas nÃĢo consigo, tento direto na bateria 6v nÃĢo pega, tento com um trasistor nÃĢo pega, porque? Ajuda ai...
Oi Josias. Muito obrigado por participar do canal. DifÃcil ajudar. Qual programa? Qual motor?Alimentando como? SÃĢo muitas questÃĩes que podem interferir no funcionamento de um projeto. Abraço da Equipe Canal Brincando Id
Pois ÃĐ FlÃĄvio, vou me aprofunda mais nestas questoes e ver oque consigo, muito obrigado !
Boa noite , Mestre isso esta acontecendo no meu arduino o cÃģdigo esta tudo certo mas o arduino nÃĢo executa o cÃģdigo !!!
Oi Sergio. Muito obrigado por participar do canal. Este problema pode ter vÃĄrias causas. Desde alimentaçÃĢo incorreta, atÃĐ um arduino queimado. Tente mandar um sketch blink para testar se o problema ÃĐ com o arduino ou com o seu programa. GostarÃamos de aproveitar a oportunidade para sugerir o curso de arduino.net onde vocÊ aprenderÃĄ a eletrÃīnica e a programaçÃĢo necessÃĄrias para desenvolver seus projetos com arduino. Acompanhe nosso canal no o Instagram instagram.com/canalbrincandocomideias.
Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho.
Abraço da Equipe Canal Brincando com Ideias.
NÃĢo ÃĐ BUG! na linha 15 do primeiro cÃģdigo estÃĄ sendo atribuÃdo o valor de 1 para a variÃĄvel estadoLeds fora das chaves do if, sendo assim ele vai executar fora da verificaçÃĢo, me corrijam se eu estiver errado
Seu pensamento estÃĄ equivocado
Quando se hÃĄ somente 1 execuçÃĢo dentro do IF, ela pode ser colocada sem a necessidade das {}.
Prezados, aqui esta o codigo gerado com otimizaçÃĩes ligadas, o compilador simplesmente remove o "if" pois o comportamento ÃĐ totalmente indefinido: godbolt.org/z/7pZ-n_
Agora, quando vocÊ inicializa a variÃĄvel, o if esta lÃĄ e funciona perfeitamente: godbolt.org/z/yWkqyx
Observem como muda completamente a geraçÃĢo do cÃģdigo com a inicializaçÃĢo da variÃĄvel.
Portanto, nÃĢo existe bug algum no arduino. Apenas um programa mal formado que leva a uma compilaçÃĢo com saÃda "indefinida" pela especificaçÃĢo da linguagem.
Oi /?Bruno. Muito obrigado. Abraço da Equipe Canal Brincando com Ideias.
Olha, quanto a inicializar as variÃĄveis para nÃĢo carregar lixo da pilha, estou junto, ÃĐ praxe em algumas linguagens. Lembro desde o Fortran IV de ter que zerar vetores e matrizes. Mas ainda nÃĢo entendi como que ele pode entrar no IF, atribuindo o valor 80, mas sem escrever a linha "passou pelo ponto 1" ? ambos os comandos nÃĢo estÃĢo juntos dentro das { } do IF? JÃĄ que ele entrou indevidamente no IF, nÃĢo tinha que ter executado as duas linhas?
Silvio Siqueira fiquei com a mesma dÚvida
Oi Silvio. Muito obrigado por participar do canal. à exatamente essa a questÃĢo do bug, mas pelos comentÃĄrios, acho que nÃĢo fomos claros. Talvez façamos outro vÃdeo. Abraço da Equipe Canal Brincando com Ideias.
â@@BrincandocomIdeias Exato! O pessoal centrou o foco (ou o fogo !) na declaraçÃĢo da variÃĄvel, e nÃĢo no "IF" que nÃĢo "IFOU" ; )
Eu repeti o sketch aqui, sem declarar valor ao estadoLeds, e reproduzi o mesmo efeito "bugado". PorÃĐm, acrescentei algumas coisas que sÃģ somaram mais curiosidade:
- NÃĢo importa quantos comandos eu acrescento no IF, todos sÃĢo desprezados. Exceto todos os comandos que contenham a variÃĄvel estadoLeds, esses sÃĢo sempre executados;
- Dentro do IF, se eu somo uma constante qualquer ao estadoLeds, ele imprime o valor 97! sempre... mesmo que eu some ou subtraia outra coisa apÃģs, imprime 97...
- Dentro do IF, se eu multiplicar ou dividir o estadoLeds por uma constante, ele nÃĢo executa, nÃĢo entra no IF...
- Dentro do IF, se eu dividir estadoLeds por ele mesmo, dÃĄ 1, ele imprime 1, e passa pelo "ponto 2" !
Muito estranho tudo isso kkk Que serÃĄ esse 97 ??
Abraços, Professor!
Boas prÃĄticas de programaçÃĢo, para evitar lixos de memÃģria: ao criar uma variÃĄvel, inicialize-a sempre com um valor definido!
(regra bÃĄsica para evitar perder tempo procurando bug)
Oi Jonarnisseno. Muito obrigado por participar do canal e pela sua opiniÃĢo. O fato ÂīÂīe o comando dentro do if, ter sido executado sem o if ser validado. Abraço da Equipe Canal Brincando com Ideias.
Muito bom os seus vÃdeos estÃĄ de parabÃĐns. Gostaria de saber se vc poderia me ajudar estou tentando fazer uma balança com o Arduino mas nÃĢo estÃĄ dando certo o valor do peso nÃĢo altera confirme a carga da balança e o valor que ÃĐ mostrado fica variando sem parar estou tentando fazer com 2 cÃĐlula de carga e o mÃģdulo hx711
Oi Vithor. Muito obrigado por participar do canal. No momento, infelizmente, nÃĢo dispomos dos serviços de consultoria ou suporte aos vÃdeos do canal, mas informamos que temos quase 500 vÃdeos gratuitos no canal, que poderÃĢo ajuda-lo com seu projeto. Sugerimos ainda, o cursodearduino.net, onde vocÊ aprenderÃĄ a eletrÃīnica e a programaçÃĢo necessÃĄrias para desenvolver seus projetos com arduino, sem dificuldades. Abraço da Equipe Canal Brincando com Ideias.
NÃĢo ÃĐ um bug. Quando a variÃĄvel ÃĐ inicializada, nÃĢo hÃĄ garantia de que ela iniciarÃĄ com zero, especialmente variÃĄveis locais. E o programa utiliza o valor dela antes de ser atribuÃdo valor. Assim, vocÊ pode pegar lixo. A lÃģgica de funcionamento desse software, alÃĐm de muito ineficiente, estÃĄ errada. O problema nÃĢo estÃĄ no microcontrolador, nem no compilador, nem no software do arduino: estÃĄ no programa e quem o escreveu. Falta experiÊncia.
Oi Daniel. Muito obrigado por participar do canal. A questÃĢo nÃĢo ÃĐ a variÃĄvel, e sim, porque o comando dentro do if foi executado, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
Qualquer um que tenha feito um curso de programaçÃĢo sabe que deve inicializar uma variÃĄvel antes de usar o valor armazenado. Ajuste seu material! www.arduino.cc/en/Reference/VariableDeclaration
Oi JoÃĢo. Muito obrigado por participar do canal e pela sua opiniÃĢo. o fato ÃĐ porque o comando dentro do if foi executado sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
oi, na parte dos codigos eu consigo digitar e carrega normalmente ,mas meu arduino fica como os botoes pressionado no monitor de teste do programa e tambem fora dele. rsr sera que estÃĄ em curto
Oi Washington. Muito obrigado por participar do canal. Isso pode ser um erro de programaçÃĢo, ou mal contato, Existem vÃĄrias causas. Mas precisarÃamos nalisar seu cÃģdigo e seu circuito. GostarÃamos de aproveitar a oportunidade para sugerir que assista a uma aula online gratuita. cursodearduino.net/aula-online
Acompanhe nosso canal no Telegram: t.me/canal_brincando_com_ideias
Deixe-nos um like e compartilhe nossos vÃdeos para que outras pessoas conheçam nosso trabalho.
Um forte abraço da Equipe Canal Brincando com Ideias.
isso nÃĢo ÃĐ um bug, isso ÃĐ um erro de programaçÃĢo variÃĄveis que nÃĢo estÃĢo em methodo getter and setters precisa receber um valor! ele precisa receber um valor inicial
Onde isso ÃĐ bug? EstÃĢo tentando ler uma variÃĄvel nÃĢo inicializada e querem que o cÃģdigo invente um valor correto...
Muito bom mestre ððð
Oi Paulo. Muito obrigado. Abraço da Equipe Canal Brincando com Ideias.
Eu achando que fosse algo novo, sempre inicio com zero
Pensei que estava falando de mim.kkkk
Oi GideÃĢo. Muito obrigado por participar do canal. NÃĢo, mas passou perto. rsrs. Abraço da Equipe Canal Brincando com Ideias.
Obrigado pela resposta. Tenho interesse em transformar minha casa igual a casa do Toni Stark ( homem de ferro) serÃĄ que o arduÃno pode fazer isso?
Para um circuito simples como esse, ÃĐ desnecessÃĄrio usar funçÃĩes booleanas e variÃĄveis desnecessÃĄrias.
Ao meu ver nÃĢo ÃĐ bug. E sim cÃģdigo de programaçÃĢo.
Oi Vitor. Muito obrigado por participar do canal. O problema nÃĢo ÃĐ a variÃĄvel e sim, porque o comando dentro do if foi executado, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
...desculpe a opiniÃĢo pessoal, mas ÃĐ sim uma falha de programaçÃĢo. Uma variÃĄvel ÃĐ apenas a definiçÃĢo de um espaço onde SERÃO / PODERÃO SER armazenados valores, mas ela - a variÃĄvel - nÃĢo ÃĐ por si mesma o valor. à como se houvÃĐssemos apenas designado um espaço na gaveta onde guardaremos os lenços: Esse espaço pode conter lenços, mas nÃĢo ÃĐ ele mesmo um lenço.
EntÃĢo fica Ãģbvio, ÃĐ sim uma falha na lÃģgica de programaçÃĢo. Faltou um passo.
Resumindo:
A ATRIBUIÃÃO de um valor à uma varià vel NÃO à a mesma coisa que a DECLARAÃÃO de uma variÃĄvel.
Oi JosÃĐ. Muito obrigado por participar do canal e pela sua opiniÃĢo. A questÃĢo nÃĢo ÃĐ a variÃĄvel, e sim, porque o comando dentro do if foi executado, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
2:24 "a logica ta certinha" NÃĢo estÃĄ nÃĢo.... Faltou digitar o valor ... Mas legal a criatividade do tÃtulo do video... Me fez ficar curioso e assisiti o video...
Oi Cleyton. Muito obrigado por participar do canal. O bug nÃĢo estÃĄ na variÃĄvel. O problema ÃĐ que o comando dentro do if foi executado sem o if ter sido validado. Abraço da Equipe Canal Brincando com Ideias.
Tive este mesmo problema no TCC do curso, criei uma variavel para guardar os segundos e minutos e os segundos e jÃĄ começava com 1.
Oi Junior. Muito obrigado por participar do canal e por compartilhar sua experiÊncia. Agora achamos que o problema estÃĄ resolvido. rsrs. Abraço da Equipe Canal Brincando com Ideias.
Meu caro, isso nÃĢo ÃĐ um BUG do arduino como vc repetiu durabte os 12 minutos do vÃdeo. à simplesmente a maneira como a linguagem C funciona, se vocÊ nÃĢo declarar um valor inicial para a variÃĄvel, ela irÃĄ conter "lixo", informaçÃĩes que podem ter sido usadas como cache ou variÃĄveis anteriores. Portanto, ÃĐ um nÚmero diferente de 0. E ÃĐ assim que o arduino irÃĄ tratar, como um valor equivalente a false. Por isso iniciou com a porta ligada.
Oi Gabriel. Muito obrigado por participar do canal e pela sua explicaçÃĢo. O problema nÃĢo estÃĄ na variÃĄvel, e sim, porque o comando dentro do if foi executado, sem o if ter sido validado? Abraço da Equipe Canal Brincando com Ideias.
eu ja tive problema assim
Oi Rodrigo. Muito obrigado por participar do canal. Acreditamos ser um problema de certa forma comum., apesar de se recomendar que os valores sejam atribuÃdos. Abraço da Equipe Canal Brincando com Ideias.
99% dos comentÃĄrios mostram que as pessoas NÃO entenderam o vÃdeo direito.. o problema ÃĐ que estÃĄ sendo executado o comando dentro do IF sem que se entre no IF. à um bug do compilador. Qual compilador vc estÃĄ usando? Aqui no GCC estÃĄ perfeito, acho que isso aà ÃĐ coisa do Ruindows.
O TÃtulo deveria ser mudado para "Encontramos um BUG no compilador do Ruindows". (nÃĢo confundam Arduino IDE com Compilador C/C++)
Oi Johm. Muito obrigado por participar do canal e pela sua opiniÃĢo. Abraço da Equipe Canal Brincando com Ideias.
LIKE LIKE
Eu nÃĢo vi BUG.
FlÃĄvio atÃĐ o momento nÃĢo và nenhuma resposta da sua parte sobre os comentÃĄrios dos colegas que provaram que isso nÃĢo ÃĐ um BUG. VocÊ grava vÃĄrios vÃdeos com excelente conteÚdo mas tem que ser mais participativo nos comentÃĄrios, eu mesmo jÃĄ fiz algumas perguntas e atÃĐ agora sem respostas. DÃĄ uma atençÃĢo pro pessoal para o seu canal crescer ainda mais.
Oi Elias. Muito obrigado por participar do canal e pela sua observaçÃĢo. Note que todos~ comentÃĄrios no canal sÃĢo feitos no dia seguinte e normalmente procuramos responder todas as mensagens, exceto aquelas perguntas sem logica ou sem informaçÃĢo suficiente. do tipo "porque meu arduino nÃĢo funciona?". Sem que o pro blema seja descrito, como dar uma resposta? Abraço da Equipe Canal Brincando com Ideias.
@@BrincandocomIdeias Diante disso pesquise minhas perguntas e veja se as mesmas tem lÃģgica pra vocÊ, bem como o e-mail enviado verifique se o teor do mesmo ÃĐ relevante pra vocÊ, no meu ver uma resposta mesmo que seja negativa ÃĐ melhor do que ficar sem resposta.
OlÃĄ @Elias Pereira! Tudo bem? ð
Sobre ser um bug ou nÃĢo, nÃģs podemos simplesmente separar a situaçÃĢo em duas formas de pensar:
A primeira ÃĐ aproveitar a informaçÃĢo e aprender, investigar e se aprimorar
A segunda forma de pensar seria apenas discutir a classificaçÃĢo do evento e ficar parado onde estÃĄ.
Cada um pode fazer a sua prÃģpria escolha ð
Acredito que vocÊ nÃĢo tenha notado anteriormente mas NÃS, entenda que a equipe nÃĢo conta apenas com o professor FlÃĄvio, aqui da equipe do canal respondemos a grande maioria dos comentÃĄrios, sÃĢo mais de 260mil inscritos atualmente e tentamos sempre dar o mÃĄximo de atençÃĢo a todos vocÊs.
Assim como estamos respondendo a sua pergunta tambÃĐm respondemos de outros inscritos conforme conseguimos.
Infelizmente o tempo que temos durante o dia ÃĐ fixo e todos os dias temos novos comentÃĄrios, novos emails, novos vÃdeos para gravar, editar, planejar etc. entÃĢo um ou outro comentÃĄrio acaba ficando sem resposta. Note que isso ÃĐ porque temos uma equipe, uma pessoa sozinha jamais conseguiria responder todas as centenas de emails e comentÃĄrios diÃĄrios ðð
Muito obrigado pela sua participaçÃĢo e pelo feedback, um forte abraço!
Att. Equipe do canal Brincando com ideias
RESUMINDO estava programado errado e o arduino estava certo
Oi Gt3CaioBr. Muito obrigado pela sua participaçÃĢo.
Pode ser visto desta forma.
Se vocÊ deseja:
Avançar ainda mais no universo Arduino,
Ter acesso a um conteÚdo organizado, que vocÊ pode acessar tanto pelo celular quanto pelo computador
Participar semanalmente do Encontro com os Alunos com o prof. FlÃĄvio, um espaço onde vocÊ poderÃĄ tirar dÚvidas, apresentar seus projetos, debater ideias
e soluçÃĩes e ainda bater um papo tecnolÃģgico expandindo seus horizontes,
Acesso a uma equipe preparada para tirar suas dÚvidas enquanto estuda,
Acesse nossa pÃĄgina: brincandocomideias.com.br/#meus-cursos
E escolha o curso certo para vocÊ.
NÃĢo esqueça de deixar um Like.
Um forte abraço da Equipe do canal Brincando com Ideias.
Erro ClÃĄssico dos Iniciantes, Recomendo ver Resistor Pull Up e Pull Down
Caramba q bug grotesco, merece ser reportado pros desenvolvedores. No meu entendimento, no caso de uma variÃĄvel local nÃĢo ser inicializada, o mÃĄximo q poderia acontecer seria o surgimento de um valor "garbage" na posiçÃĢo de memÃģria desta variÃĄvel.
Edit: realmente, apÃģs a discussÃĢo, nÃĢo creio que seja um bug, todavia ÃĐ importante saber o porquÊ deste comportamento.
Os desenvolvedores vÃĢo responder educadamente (ou nÃĢo), que nÃĢo existe bug algum no arduino. Simplesmente acessar variÃĄvel nÃĢo inicializa em C ÃĐ "undefined" e a partir deste ponto, o comportamento do programa pode ser qualquer um.
A Única resposta vÃĄlida para este tipo de report ÃĐ "meu filho, vai aprender a programar primeiro"
Oi Julio. Muito obrigado por participar do canal. Realmente. Pretendemos informar sim, aos desenvolvedores. Abraço da Equipe Canal Brincando com Ideias.
Ceticismo.net obrigado por me lembrar q nÃĢo sei tudo, sr. CÃĐtico
Bruno Sanches entÃĢo, referindo ao outro post q estamos conversando, nos PICs isso nÃĢo acontece, pq as variÃĄveis locais sÃĢo salvas na mesma parte da RAM q as demais. Logo, acessar uma var nÃĢo inicializada retornaria apenas lixo e nÃĢo teria este comportamento undefined. Meu erro foi assumir q a arquitetura dos AVRs ÃĐ igual kkk. Vou olhar o datasheet do 328p qnd sobrar um tempo.
eu sempre atribuo um valor inicial a uma variÃĄvel
like
Oi Gilbgomes. Muito obrigado. Abraço da Equipe Canal Brincando com Ideias.
Isso nÃĢo ÃĐ bug e sim erro de programaçÃĢo. Erro bÃĄsico.
Oi Marcel. Muito obrigado por participar do canal. A questÃĢo nÃĢo ÃĐ a variÃĄvel, e sim, porque o comando dentro do if foi executado, sem o if ter sido validado? Abraço da Equipe CanaCanal BrincandIdeias.
Oudricanalarai
Boa noite professor obrigado pela homenagem kkkk estou muito fez em poder contribuir com o canal e estÃĄ valendo a pela estudar abraço.
@@gideonalves5645 De nada :)
Cuidado !!! eu que o digo.
âSou formado em ciÊncias da computaçÃĢo e especialista em programaçÃĢo em Arduinoâ mas nÃĢo sabe que uma variÃĄvel em c nÃĢo inicializada, o valor ÃĐ nÃĢo definido! Depois faz um vÃdeo dizendo que achou um bug , puro click bait.
NÃĢo tem mal se errar, tem mal ÃĐ dar informaçÃĢo enganadora
Talvez seja melhor comprar um livro de c e dar uma revisÃĢo...
Oi Hugo. Muito obrigado por participar do canal e pela sua opiniÃĢo. A questÃĢo do bug nÃĢo ÃĐ a variÃĄvel e sim, porque o comando dentro do if foi executado, sem o if ter sido validado. Abraço da Equipe Canal Brincando com Ideias.