Ir ao conteúdo
  • Cadastre-se

Gabriel G.S. 1023

Membros Plenos
  • Total de itens

    37
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. Galera,resolvi o problema!!!!!!!!!!!! Eu estava programando um "computador de bordo" para a bicicleta,aí eu estava testando o giro da roda com cliques do botão,se bati muito para que quando o botão fosse apertado contasse somente uma vez á variável var02,mas esse trecho excluí do código pois era somente teste do que o receptor infravermelho deveria fazer ao detectar o led infravermelho implantado na roda (quem não tem cachorro caça com gato ~não tenho censor hall nem imã). Consegui resolver esse problema do botão,mas eu fiquei com isso na cabeça o dia todo,como qualquer coisa que aprendo e acho interessante. De repente eu me toco que para o Arduino detectar o toque do botão ele tem que fazer aterramento,COM O pinMode INPUT!!!!!!!!!!!! EUREKA!!!!!!!! Depois de tanto tempo pesquisando o que é velocidade linear,raio,circunferência,pra tentar programar e fazer algo que funcione;testei agora e deu certo,vocês sempre estavam certos,da pra fazer o aterramento Ps: Código abaixo não tem ctrl + C e ctrl + V,gosto de escrever os nomes das variáveis em inglês mesmo. #define a 13 #define b 12 #define c 11 #define d 10 #define e 9 #define f 8 #define g 7 #define pd 10 #define rcv_pn 2 #define terra_1 4 #define terra_2 3 #define pi 3.14159265359 int rtimer = 0; int timer = 0; int ic = 0; int apt; int velo; bool var01; // Registro de volta int var02; //Contador de volta int var03; // int vdezena; int vuni; bool retract_button = true; bool press_button = false; bool countered; int media; bool dispn[11][7] = { {1,1,1,1,1,1,0}, // 0 {0,1,1,0,0,0,0}, // 1 {1,1,0,1,1,0,1}, // 2 {1,1,1,1,0,0,1}, // 3 {0,1,1,0,0,1,1}, // 4 {1,0,1,1,0,1,1}, // 5 {1,0,1,1,1,1,1}, // 6 {1,1,1,0,0,0,0}, // 7 {1,1,1,1,1,1,1}, // 8 {1,1,1,1,0,1,1}, // 9 {0,0,0,0,0,0,1} // Símbolo -; }; unsigned short int portmap[7] = {a,b,c,d,e,f,g}; inline void disp(const int decimal,const int numeric){ int i = 0; pinMode(terra_1,OUTPUT); pinMode(terra_2,INPUT); while(1){ if(i >= 7){ digitalWrite(g,0); break; } digitalWrite(portmap[i],dispn[decimal][i]); digitalWrite(portmap[--i],0); i += 2; } i = 0; pinMode(terra_1,INPUT); pinMode(terra_2,OUTPUT); while(1){ if(i >= 7){ digitalWrite(g,0); break; } digitalWrite(portmap[i],dispn[numeric][i]); digitalWrite(portmap[--i],0); i += 2; } i = 0; } void setup() { pinMode(a,OUTPUT); pinMode(b,OUTPUT); pinMode(c,OUTPUT); pinMode(d,OUTPUT); pinMode(e,OUTPUT); pinMode(f,OUTPUT); pinMode(g,OUTPUT); //Serial.begin(2000000); } void loop() { timer = millis(); press_button = digitalRead(rcv_pn); if(press_button != retract_button){ if(press_button == false && retract_button == true) var02++; } retract_button = digitalRead(rcv_pn); if(timer - rtimer >= 1000){ //each one second velo = ((207.345 * var02)/100) * 3.6; if(velo - media > 3){ media = velo; } media = (velo + media) / 2; */ /*Serial.println("-------------------------------------------------------------------"); Serial.print("Media: "); Serial.print(media); Serial.print(" Var02: "); Serial.println(var02); rtimer = millis(); var02 = 0; vdezena = media / 10; vuni = media - vdezena; /*Serial.print("vdezena: "); Serial.print(vdezena); Serial.print(" Vuni: "); Serial.println(vuni); Serial.println("-------------------------------------------------------------------"); */ disp(vdezena,vuni); }else disp(vdezena,vuni); }
  2. O propósito é exatamente esta mas a situação que comentei continua do mesmo jeito,já que eu terei que chavear o aterramento.
  3. Praticamente todos os celulares (99,999999999%) dos celulares de hoje em dia não possuem mais o problema de vício,ocorrências de sensores descalibrados são reais.
  4. Saudações, Estou com uma dúvida cruel. Estou montando um display 7 digitos **catodo** comum e a situação é a seguinte: O microcontrolador(Arduino[Por favor não movam este tópico para lá]) possui suas saídas fornecendo tensão positiva,até aí beleza,porque os 7 segmentos do display são anodo,ou seja,precisa-se de terminais positivos. Mas o problema é que: Esses display possuem 7 segmentos por dígito,como na imagem: O que faz a corrente fluir é a conexão com o terra do circuito,maaaaasss: O Arduino só possui saídas positivas - não tem condições de 'ativar' o pino e fazer aterramento para que os led's se acendam. Mesmo que eu aterra no próprio terra da placa todos os led's se acenderiam(conforme eu acionasse o A,B,C,D,etc.. de cada dígito),e eu não quero que isso aconteça,já que estou trabalhando com alimentação chaveada,que vai funcionar na seguinte maneira: Eu aterro o primeiro digito,mapeio todos os segmentos Por exemplo,eu quero que apareça no visor o número 13: Aterrar o primeiro dígito ; Acionar segmento B (como na imagem) ; Desligar segmento B; Acionar segmento C; Desligar segmento C; Desaterrar primeiro dígito; Aterrar segundo dígito ; E como no primeiro dígito,ligar os segmentos A, B, C, D, G, sendo que cada um deve ser desligado após o seu acionamento; Assim ficaria uma alimentação chaveada,dando o efeito POV (Persistência da visão,em PT-BR) e não sobrecarregaria a placa. Mas como disse,esse aterramento e desaterramento dos dígitos não podem ser feitos a partir da tensão positiva que os terminais ''microcontrolados" do Arduino fornecem. Eu estava pesquisando e vi que os caras colocavam na pinagem o aterramento no positivo mesmo,e diz eles que davam certo,mas não tem lógica nenhuma,até porque já fiz testes. Alguém me da uma luz!!!
  5. Saudações senhores, O PC aqui está funcionando redondo,375GB Livre de 500 e com uma partição inteira de 60GB pra memória virtual,não é um PC servidor mas quebra um galho filé. A questão é o seguinte,ele funciona normal e tudo,mas na BIOS não dá absolutamente nada de vídeo.Ele também as vezes (raramente) ele liga,fica 1 segundo com as luzes acessas e o cooler da fonte ligado,depois desliga e fica mais 2 segundos com tudo desligado,depois disso ele liga normal.Isso acontece mais ou menos em 1 vez em 10 vamos dizer.E outro caso que também mais raramente acontece: Tem vez que ele nem liga,é preciso acionar o fio verde do ATX e deixa ele ligado um pouco,pra depois conectar os cabo tudo de novo e voltar a ligar,isso acontece vamos dizer em 1 vez a cada 50,mas quando isso acontece uma vez ocorre várias vezes seguidas também e depois de um tempo para. Config: placa-mãe IPX1800G2 "tudo-em-um" (de notebook) com processador J1800 e memória RAM de 4GB,basicamente a placa-mãe é feita pra esse processador. Não tem cooler,exceto o da fonte.A placa parece como um de notebook mas ta encaixada em gabinete,de fábrica veio assim.
  6. O ferro chegou. Fiquei abismado com a facilidade que é soldar, você só encosta na no estanho e na placa e PUF!! A solda pega sozinha no local correto.Com certeza já era hora de jogar aquela jangada antiga fora
  7. Quando disse isso quis dizer que as bibliotecas nativas do Arduíno desabam o desempenho da placa em si.Eu estava fazendo um nanoprojeto aqui com display de 7 segmentos usando de amostragem chaveada,sem o Serial.println(),funcionava numa boa,mas quando eu adicionei o Serial.print a queda de desempenho foi terrível,nem parecia que o display de 7segmentos estava ligado, de tão fraco que ficou. E também por causa do digitalWrite() , que adiciona meia dúzia de linha cada vez que você coloca essa função. Fui no site do nerdpi e fiquei impressionado sobre essa página ser controlado por uma placazinha tão barata (100 mangos) e "ARMada" abrir o site tão rápido
  8. Um pequeno prós e contras: Arduino (Uno,Mega,Leonardo...): ------------- Prós ------------- - Fácil programação - Suporta um corrente de saída considerável - Suporte estrondoso na World Wide Web - Bibliotecas até o talo ------------ Contras ---------- - A IDE ''lenteia'' demais a placa - Pode não ser uma boa ideia desenvolver programas extensos em certos tipos de placas - Tem um hardware que dá pro gasto,mas se você quiser mais desempenho,já pula fora - (Iniciantes) Dizem que essa placa é boa pra aprender programação,mas digo ao contrário: Ela facilita DEMAIS a programação,a ponte de ser como uma "programação da programação", aquele digitalWrite(); seria como praticamente dizer (se o cara for americano) "Arduíno,liga a porta X pra mim", tira a lógica toda que tem por trás do PORTX = XXXXXXXXXX (X ~= 0 || 1),que seria um coisa muito mais comunicativa com a placa - Ps:Não sou um programador sênior, mas digo que essa placa atrapalha muito a vida quanto a isso (Não saí ainda da primeira linguagem) Placa Intel Galileo: ------ Prós ------ - É uma transição do Arduíno básico para o Raspberry - Faz coisas que o Arduíno básico faz e algumas que o Raspberry faz - Ainda tem a facilidade do Arduíno básico - Maior memória e capacidade de processamento ----- Contras --- A mesma questão do arduino básico (A placa Galileo faz parte da família do Arduíno,mas é como se fosse Camaro da Chevrolet ) Raspberry (A lista aqui pode mudar de acordo com a versão) (Lembre Ferrari): ----- Prós ---- - Capacidade de processamento muito maior que a das placas anteriores - Abre uma grande gama de projetos,por mais que o Arduíno faça isso ele faz de uma forma mais fechada,por exemplo,com um Fiat uno (Arduíno) você pode passear,tunar ele (ASM e manipulação de registradores), pode até chegar a uns 150 Km/h na estrada,mais não pode fazer drift's,não pode se destacar ele com projetos maiores e bem elabores devido a maior potência,não pode chegar a 300 Km/h e fazer uma viagem mais rápida,coisa que a Ferrari (Raspberry) faz brincando - Suporte a sistema operacional e vídeo ----- Contras ----- - Baixa corrente de saída - Conteúdo na web não é tão grande como o Arduíno - Se vire fazendo seus projetos,você não vai ter #include aqui - (Opinião própria:) Não sou muito com a cara de linguagens de alto nível - Python Ps: Certa vez vim um vídeo de um cara que fez um drone com Arduíno,era um bicho extremamente instável,por vez que um um vídeo de um drone Rasp,que era super estável e até tinha piloto automático,Lembre do exemplo que dei,o Arduino faz,mas não como o Rasp.
  9. Raspberry tem boa compatibilidade e potência considerável,dá pra fazer de tudo,até alguns programas mais complexos que ainda vai rodar de boa.Já o Arduino: Sai fora que é fria,não aguenta nem Serial.print() que trava o programa todo,fora a IDE te empurra bibliotecas até você não aguentar mais,ele já é lento e ficam fazendo coisas muito desnecessárias e se você quiser melhorar o desempenho mesmo assim vai ter que encarar o ASM e manipulação direta de registradores.
  10. Outra coisa cara,"comprei" um ferro da Hikari mesmo e estou com uma dúvida,tem gente que fala pra limpar ele quente mesmo ligado com esponja molhada,não estraga não?
  11. Até daria,mas estou fazendo um algorítimo que precisa ser muito rápido (pra arduino,que tem uma carroça de processador).
  12. Saudações senhores, Neste tópico vou repostar minha dúvida de uma forma mais esclarecida(se alguem poder apagar o post antigo,faça-o,por favor), sobre "colar" uma variável a um comando.Exemplo: #include <iostream> using namespace std; void funcao1{ cout << "Função um chamada \n"; } void funcao2{ cout << "Função dois chamada \n"; } void funcao{ cout << "Função três chamada \n"; } int main(int argc, char *argv[]) { int numero = 0; cin << numero; //Vamos supor que o usuário digite 2 /*O que eu gostaria é que o número que o usuário digitou colasse com a função que eu chamaria,Exemplo: */ funcao + numero() // aqui ela seria "colado" a variável número e executada /*Como eu disse,se o indivíduo digitou 2,a função função2() será chamada e a mensagem "Função dois chamada" Será mostrada /* return 0; } Mas o único problema é que não sei como faria isso,andei varrendo o google e não achei nada a respeito. Ps: Eu coloquei " função + numero() " sendo o operador + somente como exemplo.
  13. Não foi isso que dizer,seria colocar uma variável encostada no comando,eu não coloquei o Hexa depois do "PORTB10" pra facilitar,mas se estivesse programando na real eu colocaria sim de acordo com o que quisesse que ele faça.
  14. Saudações senhores, Estou a desenvolver uma biblioteca para Arduino e estou precisando da seguinte informação: Como farei para colocar uma variável junto a um registrador,por exemplo,se eu quero modificar algum determinado registrador eu terei que informar qual seria uma porta,e eu quero que isso aconteça com um construtor de uma classe (Que é a biblioteca),e com base nas informações que teria nessa variável eu definirei se a determinada porta seria de saida ou de entrada e/ou saída alta ou baixa,otimizando a biblioteca e dando maior desempenho,pois essa biblioteca vai alterar a saida da porta milhares de vezes,e não da pra fazer isso com digitalWrite(),juntado o registrador com variável,por exemplo: PORTB + (x como variável),se x fosse 10,por exemplo,isso seria como eu tivesse digitado PORTB10; Outro exemplo: int setPort(int port){ //Vamos supor que o indivíduo disse que a porta seria a 10; port = 10; //Na teoria: PORTB + port; //Então,seria necessário que resultasse da seguinte forma: PORTB10; }
  15. Obrigado a todos pela resposta,esclareceu minha dúvida. E o ferro é de uma marca muito boa,pelo que me lembro é da tramontina,mas me parece muito surrado,estava pensando em um hikari,dizem que essa marca é boa.

Sobre o Clube do Hardware

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

Direitos autorais

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

×