collapse

* Posts Recentes

Circuito Microfone que funcione por almamater
[Hoje às 17:14]


Emulador NES em ESP32 por dropes
[22 de Abril de 2024, 14:14]


Arame de Estendal por almamater
[18 de Abril de 2024, 16:16]


O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]

Autor Tópico: Projecto FanController  (Lida 30772 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.922
    • GrcByte - Projectos
Re: Projecto FanController
« Responder #60 em: 21 de Setembro de 2010, 01:59 »
Imagens da placa "agregadora" dos componentes para interligar tudo com o Arduino, etc.:





Caixa de acrílico preparada:



Exemplo do aspecto final:





Offline Fifas

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 2.064
  • El RoboSapiens
Re: Projecto FanController
« Responder #61 em: 23 de Setembro de 2010, 10:30 »
awesome :D

Offline Ricardo

  • Mini Robot
  • *
  • Mensagens: 110
Re: Projecto FanController
« Responder #62 em: 23 de Setembro de 2010, 11:19 »
Muito bom aspecto!

As minhas incursões no acrilico deram sempre maus resultados... mas o teu trabalho está fantástico :)



Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.922
    • GrcByte - Projectos
Re: Projecto FanController
« Responder #63 em: 08 de Outubro de 2010, 21:14 »
Bom.. está mesmo quase concluído e ainda preciso de uma ajudinha com a parte dos  displays de segmentos  ;D

Eu para não estar sempre a enviar instruções ao Shift Register 74HC595, envio apenas quando o valor lido da temperatura do sensor é diferente do valor que está no momento nos displays.. mas passado um tempinho (se a temperatura for sempre a mesma e não se enviar nada) parece que os displays ficam malucos e começam a mostrar coisas ao calhas até existir uma actualização de temperatura.. será normal?

Tenho de estar sempre a enviar a instrução com o valor actual ou é algo diferente que me ultrapassa?

Ex.:






« Última modificação: 08 de Outubro de 2010, 21:16 por almamater »

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Projecto FanController
« Responder #64 em: 08 de Outubro de 2010, 21:42 »
Tens a certeza que nada de nada está a interferir no sinal de clock ou de latch dos shift registers?
Os displays têm todos resistências para limitar a corrente?
Avr fanboy

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.922
    • GrcByte - Projectos
Re: Projecto FanController
« Responder #65 em: 08 de Outubro de 2010, 22:05 »
Têm uma resistência ligada ao pino 3, pois é o único pino positivo de cada que ligo aos 5v, os restantes ligam directamente ao shift register..

No código não tenho nada a interferir, é estranho.. mas vou dividir o código todo aos bocados e ir testando pouco a pouco.. é parvo pq posso estar 10 minutos e está tudo Ok como pode tb começar logo a variar!

P.s.:  Fiz o upload de um bocado de código:

Código: [Seleccione]
int tempc2 =0;

// SEGMENTOS
      //Pin ST_CP (latch) do CI 74HC595
        int latchPin = 3;
      //Pin SH_CP (clock) do CI 74HC595
        int clockPin = 2;
      //Pin de dados do CI 74HC595
        int dataPin = 12;
        //variáveis que ficam com os dados que vão ser passados para o ShiftOut()
        byte dataEsq;
        byte dataDir;
        byte esq[10];
        byte dir[10];
       
       
        void setup()  {   //SETUP
        Serial.begin(19200);

        pinMode(latchPin, OUTPUT);
       
        esq[0] = B11000000;
        esq[1] = B11111001; 
        esq[2] = B10100100;
        esq[3] = B10110000;
        esq[4] = B10011001;
        esq[5] = B10010010;
        esq[6] = B10000010; 
        esq[7] = B11111000; 
        esq[8] = B10000000;
        esq[9] = B10011000;
       // esq[10]= B11111111; //OFF
 
        dir[0] = B11000000;
        dir[1] = B11111001; 
        dir[2] = B10100100; 
        dir[3] = B10110000;
        dir[4] = B10011001;
        dir[5] = B10010010;
        dir[6] = B10000010;
        dir[7] = B11111000;
        dir[8] = B10000000; 
        dir[9] = B10011000;
       // dir[10]= B11111111; //OFF

//TESTAR displays de 7 segmentos: 0-9
  for (int numCiclo=0; numCiclo < 10; numCiclo++){
      dataEsq = esq[numCiclo];
      dataDir = dir[numCiclo];           
      digitalWrite(latchPin, 0);
      shiftOut(dataPin, clockPin, dataDir);   
      shiftOut(dataPin, clockPin, dataEsq);
      digitalWrite(latchPin, 1);
      delay(400);
      if (numCiclo==9){
       dataEsq = B11111111;
       dataDir = B11111111;
      digitalWrite(latchPin, 0);
      shiftOut(dataPin, clockPin, dataDir);   
      shiftOut(dataPin, clockPin, dataEsq);
      digitalWrite(latchPin, 1);
      delay(200);
      }
       }


       tempc2=23;
       
       int num1 = 0;
      do{
        num1++;
        tempc2 = tempc2 - 10;
      }while(tempc2 >= 10);
      dataEsq = esq[num1];
      dataDir = dir[tempc2];
// para mostrar nos displays de 7 segmentos... 
//Envia para o CI o valor da temperatura calculada

     // Enquanto estivermos a transmitir, o pino "latch" tem de estar a LOW
      digitalWrite(latchPin, 0);
      // Enviar os bytes
      shiftOut(dataPin, clockPin, dataDir);   
      shiftOut(dataPin, clockPin, dataEsq);
      // Voltamos a por o pino "latch" do CI a HIGH para lhe indicar que já acabámos
      // de transmitir os dados
      digitalWrite(latchPin, 1);   
           
       
        }       
       
 void loop() 
   {
       }


 
      void shiftOut(int myDataPin, int myClockPin, byte myDataOut) {
        int i=0;
        int pinState;
        pinMode(myClockPin, OUTPUT); 
        pinMode(myDataPin, OUTPUT);
       digitalWrite(myDataPin, 0);
       digitalWrite(myClockPin, 0);
   
        for (i=7; i>=0; i--)  {
          digitalWrite(myClockPin, 0);
          if ( myDataOut & (1<<i) ) {
            pinState= 1;
          }
 
          else {     
            pinState= 0;
          }
          digitalWrite(myDataPin, pinState); 
          digitalWrite(myClockPin, 1);
          digitalWrite(myDataPin, 0);
        }
         digitalWrite(myClockPin, 0);
           
return;               
               }

e apenas fazendo isso, não colocando nada no Loop, enviando apenas "23" no Setup ele tb se "Passa", os displays começaram a variar passado um tempo..

sendo assim é algo nas ligações  ::) raios! confirmei tudo 2x e estava tdo bem ligado..  será algum mau contacto entre os pinos dos segmentos? foi a única coisa que me deu luta mas consegui encaixá-los bem.. (tanto que no teste inicial os digitios de 0 a 9 aparecem todos bem)
« Última modificação: 08 de Outubro de 2010, 22:10 por almamater »

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Projecto FanController
« Responder #66 em: 08 de Outubro de 2010, 22:16 »
Devias limitar a corrente em cada pino e não no comum, assim a intensidade varia consoante o numero de segmentos ligados.
Que resistencia estás a usar?
Não tens os displays soldados, só encaixados em sockets?
Mesmo assim não deviam fazer mau contacto, tens de ir investigar isso..
Avr fanboy

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.922
    • GrcByte - Projectos
Re: Projecto FanController
« Responder #67 em: 08 de Outubro de 2010, 22:54 »
Ok, investiguei!

Meti os displays numa breadboard e de facto já estão bem  ::) por algum motivo devia de estar a fazer algum mau contacto e fazia isto.. não faço ideia! De qualquer maneira vou deixar isto ligado toda a noite a ver se falham

[]

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Projecto FanController
« Responder #68 em: 08 de Outubro de 2010, 23:27 »
Pode ser algum fio entre os shift registers e os displays na tua placa.
Avr fanboy

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.922
    • GrcByte - Projectos
Re: Projecto FanController
« Responder #69 em: 11 de Outubro de 2010, 10:53 »
Bom, alterei o encaixe dos Segmentos e deixei ligado 24h e tão bem, deverá estar resolvido  :D  o sensor tb me parece estar fixe..

Resultado:

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: Projecto FanController
« Responder #70 em: 11 de Outubro de 2010, 13:37 »
Hey, fantástico trabalho! Aposto que te estás a sentir mesmo bem com aquilo que atingiste, e que aprendeste imenso e ganhaste vontade de ir mais longe. Parabéns :D!

Offline Fifas

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 2.064
  • El RoboSapiens
Re: Projecto FanController
« Responder #71 em: 12 de Outubro de 2010, 00:39 »
Estou a gostar bastante! :)

No meu caso, preferi controlar tudo por software (aka windows) deixando o arduino controlar o resto, mas a solução dos botões pode ser útil também :)

Parabens ;)


Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.922
    • GrcByte - Projectos
Re: Projecto FanController
« Responder #72 em: 12 de Outubro de 2010, 01:12 »
Pode ser algum fio entre os shift registers e os displays na tua placa.

Ainda este assunto, reparei agora numa coisa e a causa desta situação dos segmentos, isto apenas acontece quando ligo apenas o Arduino ao USB (alimentado pela USB dum computador) e ligo os restantes componentes (incluindo os segmentos e shift registers) a uma fonte diferente (neste caso uma ATX que tenho aqui a servir de fonte de bancada), eu tenho as massas ligadas (o - do Arduino ligado com o - desta fonte), mas não sei pq acontece aquilo com os segmentos..

De qualquer forma só liguei desta forma para ser mais fácil testar isto, pois o objectivo é tudo ser alimentado da mesma fonte, e fazendo isso este problema já não ocorre!

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.922
    • GrcByte - Projectos
Re: Projecto FanController
« Responder #73 em: 26 de Outubro de 2010, 22:26 »
 ;D  ;D  ;D  ;D  ;D  ;D  ;D

Tchan Ran:








Vídeo:


Offline andre_f_carvalho

  • Mini Robot
  • *
  • Mensagens: 1.469
    • Pro - andrefcarvalho
Re: Projecto FanController
« Responder #74 em: 28 de Outubro de 2010, 19:10 »
boas,

penso que o projecto esteja acabado, por isso para o pessoal que comece a ler o post de inicio, podias por todas as imagens e vídeos no 1º tópico.


cump