Ir ao conteúdo
  • Cadastre-se

eletron1791

Membro Pleno
  • Posts

    187
  • Cadastrado em

  • Última visita

posts postados por eletron1791

  1. Eu vi lá. Agradeço demais. Porém achei complexo. É que eu não entendo muito de macro vba.

     

    Mas pesquisando no google vi que sendo os números que eu tenho, 3, 6, 7, 8 e 9 são 5 algarismos e por isso acho que não importa quais são. O que importa é que são 5. Para senhas com 4 dígitos a conta é 5x5x5x5 = 625 senhas diferentes. Isso contrariando o que eu disse com relação a poder repetir, no caso 625 senhas podendo repetir números até 4 vezes.

     

    Mas eu preciso de mais. Então aceitei que a senha seja de 5 dígitos, com os mesmos números, então a conta é 5x5x5x5x5 = 3,125 senhas

     

    A menor senha seria 33333 e a maior 99999, entre elas teriam 3.123 senhas.

     

    A dúvida é: Como fazer o excel listar de uma só vez na coluna A todas estas 3.125 senhas usando apenas os algarismos 3, 6, 7, 8 e 9 ?

     

     

     

     

     

  2. Colegas, procurei demais no google mas não encontrei nada que fosse exatamente assim:

     

    Tenho 5 teclas numeradas assim: 3 - 6 - 7 - 8 - 9

     

    Preciso gerar todas as combinações possíveis criando senhas de 4 dígitos podendo um mesmo número repetir apenas 2 vezes (ex: 3367)

     

    Tem algum site que faça exatamente assim ? alguém pode me enviar uma macro ou fórmula no excel ?

     

     

    Grato demais

     

     

     

  3. Prezados, me perdoem se abro este tópico de forma inadequada mas é que minha dúvida refere-se a uma página inicial criada dentro da IDE do Arduino. Até então a página criada era um simples root que me dava acesso um módulo leitor de cartão de memória e listava na página os arquivos armazenados dentro deste cartão.

     

    Daí eu resolvi pôr uma página de login e senha antes de acessar o cartão. Veja no JPG em anexo. Colei três trechos de código distintos. O primeiro fica no SETUP que 'chama' a void handleRoot. Esta void está colada logo abaixo e não tinha a linha da seta azul e funcionava legal, ou seja, abria os arquivos dentro do cartão de memória. Aí eu colei um trecho de código CCS que de fato cria com sucesso a página de login e senha e neste código tem esta chamada (seta laranja) que vai para \ serverIndex. Mas serverIndex não existe, o que eu preciso é chamar a página que apenas lê os arquivos do cartão de memória.

     

    Já tentei de tudo ali no lugar do serverIndex, \root \res e várias outras coisas

     

    Eu não colei o código todo aqui pois é imenso e creio que a solução seja meio que fácil...para quem entende.

     

    Alguém pode me dizer como acessar o cartão de memória ?

     

    GRATO

     

     

     

     

     

     

     

     

    DúvidaScript.jpg

    O que eu posso colocar ali no lugar de '/serverIndex' em "window.open('/serverIndex')" que consiga chamar a instrução abaixo ?

     

    server.send ( 200, "text/html", res ) ;

     

    Acho que chamando esta instrução resolve o meu problema

  4. Notei que o arquivo gerado pelo ESP32 na IDE 1.8.16 apresenta UNIX (LF) e não WINDOWS (CR+LF) como deveria, e isso está me atraálhando. Parece que a versão 1.8.5 da IDE, portanto mais antiga, criar TXT´s em WINDOWS (CR+LF). 

    Voltei no Sketch e coloquei novamente \r\n e aí o arquivo gerado voltou a ser WINDOWS (CR+LF). 

     

    Para ser tipo ANSI ao invés de UFT-8 não encontrei a resposta ainda.

  5. PROBLEMA: Eu construo a String com nomes e por exemplo, Sérgio França, tem acento no é e tem o ç. Quando crio o arquivo no cartão SD e gravo os nomes (a String toda), ao acessar o arquivo gravado no cartão SD via web server criado pelo próprio ESP32 eu visualizo caracteres estranhos no lugar dos acentos ortográficos.

     

    Aí eu tiro o cartão SD, coloco no PC, abro com bloco de notas e salvo recriando um outro arquivo de mesmo nome porém colocando ANSI ao invés de UTF-8, aí dá certo. Digo, acesso o arquivo pelo web server do ESP32 e vejo o nome corretamente escrito. 

     

    Ou seja, na IDE do arduino a criação do arquivo é em UTF-8. Eu acho que é isso. Então, se for, tem como alterar ?

     

     

  6. Deu certo assim:

     

    String nomes = "8,Kaique Mendes,F2\r\n9,Maria Sophia Correia,F3";

     

    Incluindo \r\n entre cada linha.

     

    Valeu pessoal

     

    Só o /n dá certo também.

     

    O problema agora é que eu tenho 500 nomes e para o Sketch ficar organizado eu tento dar um enter para digitar na linha de baixo e aí quebra

    a String e não compila. 

     

    Tentei assim:

     

    String nomes = "8,Kaique Mendes,F2\n +

    9,Maria Sophia Correia,F3";

     

    Não compila. Como eu faço para 'dar um enter' na String só para organizar o código ?

     

     

    Já encontrei, é só pôr \ no final e continuar a String na linha de baixo

     

    String nomes = "0,Geraldo Magela,E5\n\
    1,Sérgio França,F1\n\
    2,Lucca da Mata,F2\n\
    3,Emilly Monteiro,F3\n";

     

  7. Prezados, quero criar uma lista com números e nomes ( 3 ou 4 colunas) dentro do código do arduino (IDE) e ao pressionar um botão um arquivo deve ser criado dentro do SD CARD (objeto myFile) e a lista deve ser gravada neste arquivo separando os campos somente por vírgula conforme mostra o JPG em anexo.

     

    Queria só o trecho do código para digitar a lista e fazer o botão gravar ela. Algo a complementar o trecho abaixo:

     

    SD.remove("LISTA.TXT");
        myFile = SD.open("LISTA.TXT", FILE_WRITE);
           if (myFile) {
             myFile.println(buffer);
             delay(10);
             myFile.close();
             } 

     

    Se já tiver o arquivo ele apaga para logo em seguida criar um novo.

     

    Antes do SD.Remove teria um if (digitalRead(criarlista) == LOW) {

     

    Falta criar a lista e chamar ela depois do if

     

    É isso que eu pergunto aqui como fazer

     

    GRATO

     

    GravarNoCard.jpg

  8. Testei aqui, destaco esta parte do seu texto: "e as células que restarem vazias naquele dia corresponderão às faltas" pois eu excluí 2 alunos e  mesmo assim esta macro coloca P em todos. Mas de fato agora ela coloca P na célula correspondente também a data. Mas além de colocar P em todos, U2 a U17 (mesmo nos alunos que eu exclui), a macro também coloca P em B18. Aí não cheguei a testar a macro das faltas pois não havia célula vazia na data 01-08-2022 que é a respectiva coluna U.

     

    Mas já pensei em guardar bem esta nossa conversa pois mais adiante eu penso em incluir 6 aulas para cada dia. Aí a planilha saberia que aula é pelo horário. Teria uma tabela de referência com horários e assim pegaríamos também os horários na coluna G e preencheria "P" ou "Faltou" na célula correspondente a cada aula. Mas isso é depois e envolverá, é claro, a sua vontade e disponibilidade. Tipo assim:

    Aula 1: 07:00:01 a 07:40:00

    Aula 2: 07:40:01 a 08:20:00

    Aula 3: 08:20:01 a 09:00:00

    Aula 4: 09:20:01 a 10:00:00

    Aula 5: 10:00:01 a 10:40:00

    Aula 6: 10:40:01 a 11:20:00 

     

    Mas voltando à nossa situação de agora eu ainda fico com a sua primeira opção pois é bem fácil ordenar a lista por data e ir colando somente as datas iguais. Entretanto posso continuar fazendo mais testes se for o caso.

     

    Grato D+

     

    Segue a planilha mais recente. O P que é lançado em B18 só aparece se excluir um aluno qualquer da lista, excluir uma linha inteira, no caso eu dou um CTRL X recortando e colocando a linha mais abaixo só para testar.

     

    http://www.fileconvoy.com/dfl.php?id=ge2984dbff6445c711000445421e558825ab395dc1a

  9. Você considerou de forma totalmente correta e inteligente, eu é que não expliquei este detalhe da possibilidade dos dados virem com datas misturadas. Pode acontecer sim. Mas basta mudarmos nossa forma de alimentar a planilha. Eu coloquei um botão para rodar a sua macro. Assim eu vou colando os dados por data e pressionando o botão. Vou pensar sobre como pôr uma msgbox que abra caso a demais datas da coluna F sejam diferente da F2, aí abre um alerta na tela. Aí eu excluo a linha diferente e torno a agrupar as linhas que tenham a mesma data.

     

     

  10. OREIAG, show. Deu certo. Grato D+. Só tem um detalhe, veja o print de tela em anexo. Note que eu excluí da lista à esquerda o aluno Kaique Mendes, ID = 8. E de fato o campo que antes era P foi preenchido com Faltou. Perfeito. Aí eu decidi mudar a data da aluna Maria Sophia Correia, cortou no print. Mudei de 01-08-2022 para 02-08-2022, neste caso a célula a ser preenchida com P ou Faltou seria a V11 pois V1 é a coluna da data 02-08-2022. Ou seja, a célula a ser preenchida corresponde ao aluno e também a data. Só falta isso.

     

     

    TesteVBA.jpg

    OreiaG. Eu quis dizer que a coluna V é a responsável pelas Datas (escrevi V1 no post anterior). No caso vai de U até AY, este intervalo cobre o mês de Agosto que é um mês 'grande' que tem 31 dias. Ou seja, não vai ter mês maior que isso. Desculpa, realmente não falei isso no meu primeiro post de hoje.

     

     

    OreiaG, se não for trivial o tal ajuste, deixa pra lá. Eu posso sem dúvida mudar meu jeito de colar os dados de tal forma que faça a colagem por data, ou seja, todos com a mesma data. Depois se houver mais dados será mais um conjunto com a mesma data e assim por diante. Sua ajuda já foi sensacional. Muito grato mesmo.

     

  11. Colegas,

     

    Depois de muito pesquisar consegui fazer a planilha em anexo no meu post anterior ter pelo menos uma funcionalidade via macro. A macro que eu criei segue num TXT em anexo neste post. Ela funciona assim: De inicio as variáveis aluno e lista começam valendo 2 pois na tabela os dados começam na linha 2. Aí entra num FOR onde lista vai da linha 2 a linha 17. Cada vez que o valor de linha incrementa 1 a macro compara o valor da coluna B com coluna K, se for igual escreve 'presente' na coluna U na frente da respectiva linha. Tá funcionando beleza.

     

    O problema é que quando termina este FOR eu preciso que o valor da variável aluno passe para 3 e faça uma nova varredura com a variável lista valendo novamente 2 a 17. E depois aluno tem que valer 4, depois 5, depois, 6 até 17 também.

     

    Mas o problema é que quando o laço FOR acaba, sai do laço, e volta lá em cima reiniciando a macro e as variáveis.

     

    Alguém sabe como eu resolvo isso ? Mas só falar como fazer não vai dar certo, tem que pôr o código (quem não quiser ajudar assim peço que nem comente este post para não constranger quem de fato quiser ajudar).

     

    Ateste.txt

    Eu já coloquei que If lista = 17 then aluno = aluno + 1

     

    Mas não deu certo porque recomeça e zera as variáveis. E se eu colocar isso dentro do laço FOR aí ele não varre até 17 com aluno valendo 2. primeiro tem varrer até 17 com aluno = 2, depois tornar a varrer de 2 a 17 com aluno valendo 3, e assim por diante até aluno = 17.

  12. Patropi, veja minha planilha em anexo. Tô quebrando a cabeça aqui com fórmulas. Mas acho que uma simples macro é que resolveria o problema. É um pequeno controle de presença de 16 alunos. À esquerda tenho um retângulo com borda espessa que começa vazio sem

    nenhum dado. As células da direita são fixas. E esta planilha, pela data, refere-se ao mês de agosto indo do dia 01-08 a 31-08.

     

    Quando eu colar as informações dentro do retângulo, nada acontece. Cola mas não faz nada. Se eu pressionar o botão, aí sim a macro varre a coluna ID (coluna K), e vai localizando a linha que corresponde aos alunos. Aí na linha de cada aluno preenche P na célula da data também correspondente (data que foi colada na coluna F. Se um aluno não estiver nos dados colados, aí escreve Faltou na célula correspondente.

     

    Eu dei exemplo da Aluna Clara Almeida (ID12), que faltou.

     

     

     

    EXCELTESTE.xlsx

  13. Show. Deu certo. Mas que coisa...quem ía saber deste detalhe.

     

    Mas tem um detalhe: Se dentro do intervalo C3:C6 não tiver nada, ou seja, se eu apagar de propósito alguma célula, digamos que eu apague a C4, o resultado continua sendo "sim". Ao meu ver tinha que mudar para "não" pois vazio é diferente "novo".

     

    Tem algum macete para mostrar "não" neste caso ?

  14. Colegas, 

     

    No PIC basta pôr o PROTECT no código. No arduino, no caso no atmega329P standalone gravando com AVRDUDE ou similar basta configurar corretamente o fuse block. Mas e no NodeMCU ESP8266 ?

    Como fazer para que se alguém tentar ler o código, receber um código todo 'borrado' inútil ?

     

    OBS: Estou programando/gravando o nodeMCU pela IDE do Arduino

     

    Grato

     

  15. Oi pessoal gostaria de trazer boas notícias mas trago problemas (código e foto em anexo):

     

    Problema 1: 

    Por falta de memória precisei reduzir os pixels do meu display OLED para 64x16. Mas vejam na foto em anexo que aparecem uns pontinhos da metade da tela na direita. Como eu faço para eliminá-los ?

    OBS: Aliás quem souber de alguma biblioteca que gaste menos memória para display oled 128x32 eu agradeço (para exibir somente textos)

     

    Problema 2:

    Notem no código em anexo que no setup tenho a void telainicial() que na verdade é apenas para exibir hora e data quando nada estiver acontecendo. Mantê-la ali faz exibir hora e data porém sem contar os segundos, ou seja, assim não interessa. E se eu a colocar dentro do loop junto com a void teclas(), aí quando eu digito quaisquer um dos cinco botões existentes (1,2,3,4,5) os números 1,2,3,4,5 são exibidos sobrepostos com hora e data piscando bagunçando a visualização. O que eu gostaria é que hora e data sumissem quando eu começasse a digitação e voltassem quando eu apertasse um sétimo botão de OK por exemplo. E o RTC voltasse atualizado e contando os segundos, é claro.

     

    Como tem que ficar o código para resolver estes dois problemas ? alguém sabe ?

     

    OLED1.JPG

    codigoteste.txt

  16. Estou com um módulo display TM1637 datasheet: https://www.mcielectronics.cl/website_MCI/static/documents/Datasheet_TM1637.pdf

     

    E tenho 2 displays anodo comum de 1.8", ou seja, grandes. E pretendo fazer um contador de 00 a 99 usando arduino uno

     

    Quero usar o brilho máximo destes dois displays e pretendo dessoldar o display quádruplo que vem no módulo e soldar com fios os 2 displays 1.8" (quem sabe até faço uma plaquinha adaptadora)

     

    Minha dúvida é quanto a corrente exigida pelos dois displays (D1181ASR da cromatek), se bastaria ligar direto na placa do módulo TM1637

     

    Acho que requer 1 transistor em cada display, enfim, alguém arrisca rabiscar como seria a melhor gambiarra para este caso ? (não quero ligar direto no arduino, nem usar 4511...quero testar com o TM1637)

     

     

     

  17. É, realmente este efeito memória fajuto dos mosfets não pode ser aproveitado na prática. Darei outro jeito.

     

    OBS: Tem duas coisas (devem ter mais) que a indústria eletrônica parece que não fez ainda: Transistor com memória e foto-acoplador formado por LED+LDR. Pelo menos não se encontra fácil nas lojas.

     

     

  18. Testei com estes 4: IRF540N, IRFZ48N, IRLZ44N (este é novo), IRF2807

     

    Dreno para - de led e positivo de led indo para 12 volts (na verdade são 10 leds 0,5 w cada)

    Source indo direto para GND

    Gate flutuando ligado direto em duas chaves paralelas, uma para + 12 e outra para GND.

     

    A ideia é testar um simples ON OFF. Pulso a chave para o + 12 = leds acendem, pulso a chave GND leds apagam

     

    Problemas que ocorrem com os 4 mosfes:

    - Quando pulso para desligar, os leds desligam mas segundos depois começam a acender lentamente;

    - Com os leds acesos desligo os 12 volts na esperança de que quando energizar de novo os led´s voltem acesos, 90% acontece certo, mas nem sempre (tem que ser sempre)

     

    O que eu já fiz:

    - Tudo, resistor 10K no gate, 100nF do gate para GND, 1 uF do gate para GND. Montei um circuitinho que vi no google de chave on off com 1 botão que usa um transistor PNP mas os mesmos sintomas ocorrem. Coloquei 100 nF do gate para o GND e 1 uF não polarizado do gate para + 12 ao mesmo tempo, etc, etc. Só raiva.

     

     

     

    Quero fazer a mais simples chave on off com memória, achei que daria usando apenas 1 mosfet.

     

    Alguém tem alguma ideia ?

     

     

  19. Tenho o seguinte: Transformador => Ponte retificadora => Capacitor de filtro => 39 volts DC => LM 317 mantendo a tensão de saída em 5 volts => 555 configurado como PWM comandando um 4N35 que por sua vez comanda um IRF540N e este terá a missão de acender 3 lâmpadas (uma de cada vez). 1 lâmpada de 6 volts, outra de 12 volts, e outra de 24 (2 de 12 em série). Os terminais para a carga (que serão estas lâmpadas) está ligado no GND e no Source do MOSFET, e o Dreno dele está ligado no capacitor de filtro (39 volts). Eu quero medir o potenciômetro do PWM do 555 três vezes, depois a ideia é trocá-lo por resistores. O primeiro estágio é o que mantém a tensão-pwm na lâmpada de 6 volts, o segundo estágio mantém 12 volts e o terceiro mantém 24 volts. Como fazer para medir e limitar a tensão corretamente ? Na minha mente passa a seguinte ideia:

     

    - Alimentar cada lâmpada com tensão fixa, a de 6 com 6 volts, a de 12 com 12 e a de 24 com 24. Medir a corrente DC, anotar. Ligá-las uma a uma no circuito pwm e ir girando o potenciômetro parando-o quando a corrente for a mesma. Aí depois eu meço o valor ôhmico do potenciômetro para aquela lâmpada e repito o procedimento para as outras duas. Depois colocarei três botões, cada um acendendo a sua respectiva lâmpada.

     

    Dá certo ?

     

    Grato

     

Sobre o Clube do Hardware

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

Direitos autorais

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

×
×
  • Criar novo...

 

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!