Pages: 1 [2] 3   Go Down
Author Topic: Algumas Dúvidas Rápidas  (Read 7004 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
God Member
*****
Karma: 12
Posts: 510
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A pergunta realmente ficou confusa rs

Primeiro, o que é serial? A resposta esta nas referências do arduíno: http://arduino.cc/en/Reference/serial

Logo, para nos comunicarmos com o arduino (com o nosso programa gravado no arduino) precisamos de uma interface, neste caso podemos usar a serial. Para usar a serial precisamos colocar isso no programa (Serial.Read() vai ler o que foi mandado para a porta do arduino e Serial.Write(...) vai escrever na porta, para que um programa externo "leia".

Se você conecta o arduino na USB, o sistema operacional reconhecerá a USB como uma porta COM, ao definir a porta na IDE do arduino e abrindo o Serial Monitor (essa é uma tela do arduino que permite escrever a mensagem na porta do arduino, mensagem que o seu programa deverá entender e a partir dai executar uma ação que você tiver programado)

Também é possível escrever um programa que roda no PC e "leia e escreva" na porta serial (conexão com o arduino) em outras linguagens (VB, C#, C, C++,Java, etc), fazendo assim a interface entre o PC e o arduino, o Celular e o Arduíno, etc

O Arduino Uno possui dois pinos (um TX e um RX) onde você pode conectar um módulo bluetooth, um shield RF, ou outra interface de hardware para a comunicação.

Procura no google  por "arduino + android" e verás vários tutoriais de comunicação usando bluetooth, procura com outras palavras chave que irás encontrar até aquilo que você ainda não sabe que quer saber

Sobre o potenciômetro, tem muitos tutoriais também, bem básicos... É fácil fácil de achar smiley-wink
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A pergunta realmente ficou confusa rs

Primeiro, o que é serial? A resposta esta nas referências do arduíno: http://arduino.cc/en/Reference/serial

Logo, para nos comunicarmos com o arduino (com o nosso programa gravado no arduino) precisamos de uma interface, neste caso podemos usar a serial. Para usar a serial precisamos colocar isso no programa (Serial.Read() vai ler o que foi mandado para a porta do arduino e Serial.Write(...) vai escrever na porta, para que um programa externo "leia".

Se você conecta o arduino na USB, o sistema operacional reconhecerá a USB como uma porta COM, ao definir a porta na IDE do arduino e abrindo o Serial Monitor (essa é uma tela do arduino que permite escrever a mensagem na porta do arduino, mensagem que o seu programa deverá entender e a partir dai executar uma ação que você tiver programado)

Também é possível escrever um programa que roda no PC e "leia e escreva" na porta serial (conexão com o arduino) em outras linguagens (VB, C#, C, C++,Java, etc), fazendo assim a interface entre o PC e o arduino, o Celular e o Arduíno, etc

O Arduino Uno possui dois pinos (um TX e um RX) onde você pode conectar um módulo bluetooth, um shield RF, ou outra interface de hardware para a comunicação.

Procura no google  por "arduino + android" e verás vários tutoriais de comunicação usando bluetooth, procura com outras palavras chave que irás encontrar até aquilo que você ainda não sabe que quer saber

Sobre o potenciômetro, tem muitos tutoriais também, bem básicos... É fácil fácil de achar smiley-wink
Entedi =), vou procurar sobre bluetooth sim, pq queria mt isso... acredito que todos querem né, ficar sempre com o usb no pc nao é muito legal...

uma dúvida rápida sobre C++.
gente estou tentando concatenar e não estou conseguindo.

eu coloquei um display no arduino (proteus) e um keypad, botei os números saem certo, coloquei o * para deletar tudo e queria por para verificar se uma combinação é = a X (uma senha) no caso eu não estou conseguindo ter uma variável com todos os caracteres, dado que no lcd.print() ele imprime um caracter no display e vai usando o seguinte... porém não vi se havia memória de tudo que foi escrito até agora. pensei em ao mesmo tempo que imprimir no display criar uma variavel chamada senha e no caso ela iria ser igual a ela + customKey (tecla que acabou de ser apertada) porém estou tendo muitas dificuldades com isso, não sei o que fazer... alguém sabe como ir adicionando esses caracteres da customKey nessa variável senha? ou um jeito de pegar toda informação que está impressa no LCD?

vlw
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3244
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Eu não quero bluetooth... smiley-razz

Como estás a concatenar? Existem imensas maneiras de o fazer... mas sem ver o teu código não podemos dizer muito, ou podemos?
Já experimentaste ver strcat na net?

Sem ver código... teria de fazer tudo de raíz... e esse não é o propósito do fórum.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Eu não quero bluetooth... smiley-razz

Como estás a concatenar? Existem imensas maneiras de o fazer... mas sem ver o teu código não podemos dizer muito, ou podemos?
Já experimentaste ver strcat na net?

Sem ver código... teria de fazer tudo de raíz... e esse não é o propósito do fórum.
já sim... não ajudou muito.

Code:
/* @file CustomKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates changing the keypad size and key values.
|| #
*/
#include <Keypad.h>
#include <LiquidCrystal.h>

const byte ROWS = 4; // numero de linhas
const byte COLS = 3; // numero de colunas
//definir o caracter de cada posição
char hexaKeys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'C','0','#'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {10, 13, 0,}; //connect to the column pinouts of the keypad
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // numero das portas do lcd

//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

void setup(){

lcd.begin(16, 2);

}
 
void loop(){
char customKey = customKeypad.getKey();
String senha;

  if (customKey){

    senha = senha+customKey;
    lcd.print(customKey);

  }
 
    if (customKey == 'C'){
      delay (500);
    lcd.clear();
  }

    if (customKey == '#'){
      delay (500);
      lcd.clear();
      lcd.print(senha);
    }
 
}

no caso representei aqui como:
senha = senha+customKey; para podermos ter uma idéia...
ela está no evento customkey (sempre que apertar algum botão) ela vai adicionar esse botão para a senha e quando eu apertar outro vai adicionar a variável senha. Esse C (é na verade um *) troquei ele aí aperta vai um C para o display e um pouco depois apaga tudo e também vou por para por a variável senha vazia...
alguma ajuda? =)
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3244
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Não tens aqui evento nenhum... e como o getKey não bloqueia, sempre que carregas numa tecla o Arduino lê umas quantas. Porque não fazer isto bloqueante? Ou pelo menos testar se houve mudanca de teclas.

Code:
unsigned char tecla_anterior;
unsigned char tecla;
if (tecla != tecla_anterior) {
//faz algo
}
tecla_anterior = tecla;
Isto é um exemplo para usar strings em vez de Strings.

Code:
char senha[6];//seenha com 5 caracteres.
unsigned char pointer = 0;

...

  if (customKey){
    if (pointer<5) { //só tens 6 espacos...
       senha[pointer++] = customKey;
       senha[pointer] = '\0'; //terminador
       lcd.print(customKey);
    }
  }
 
    if (customKey == 'C'){
      delay (500); //para que é isto?????
      pointer = 0;
      senha[0] = '\0'; //se imprimires, não aparece nada.
      lcd.clear();
  }

    if (customKey == '#'){
      delay (500);//Isto é para????
      lcd.clear();
      lcd.print(senha);
    }
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
God Member
*****
Karma: 12
Posts: 510
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Eu não quero bluetooth... smiley-razz

Isso é porque não és novato!! lol
Logged

BHZ, MG, Brazil
Offline Offline
Sr. Member
****
Karma: 10
Posts: 346
Android developer; Arduino enthusiast
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

• qual a diferença de eu comprar um shield de motor ou ligar sem o shield?

Jamais se deve ligar um motor diretamente ao Arduino. Há poucas pessoas que vão te dizer o contrário, portanto vou justificar minha resposta.

Veja bem: cada pino do Arduino tem um limite de corrente de 40mA. Isto é o suficiente para acender um LED ou ligar um pequeno buzzer e nada mais. Sério, NADA MAIS. O objetivo dos pinos de saída do Arduino é comunicar com outros dispositivos digitais ou components como transistores, relés, optoacopladores, etc, portanto com 5V (geralmente) e baixíssima corrente, ou seja: apenas sinalização.

A soma de corrente de todos os pinos do Arduino não deve ser superior a 350mA (se alimentado pela USB) ou 700mA se usada alimentação externa.

Os outros dispositivos digitais ou components é que farão algo maior, como acionar um motor, acender uma lâmpada 110V, e por aí vai.

Um motor, ao ser ligado, tem um consumo de corrente muito alto (chamado "corrente de partida"), e mesmo um pequeno motor de CD-ROM pode chegar fácil a 200mA na partida ou arranque. Durante o uso, ao ter alguma carga no motor (demanda de torque), sua demanda de corrente certamente é superior a 40mA. Isto pode e VAI queimar a porta digitial do seu Arduino.

Os shields de motor são excelentes pois usam um CI dedicado (geralmente o L293D ou L298), que usam um fonte de energia externa, diferente da fonte de energia do Arduino, liga os 2 GND (Arduino + fonte externa) juntos, e então usam a sinalização digital do Arduino para ligar/desligar os motores, que por sua vez são alimentados por uma fonte externa. Tecnicamente falando, cada L293D ou L298 são duas pontes-H ("H-bridges"), são uma série de MOSFETs que isolam as sinalização digital da linha de potência.

Você tem a opção de montar seu próprio shield de motores usando MOSFETs e BJTs, ou usando o L293D (como eu fiz, vou postar vídeo de noite).

Um motor shield comum no mercado é um projetado pela LadyAda, que possui 2 x L293D e 1 x 74HC595. Sua grande vantagem é que você usa apenas 3 pinos digitais do Arduino para se comunicar com o 74HC595, que por sua vez conversa com cada um dos L293D. É suficientemente rápido e te economiza vários pinos de saída do Arduino.

Quote
• posso ligar qualquer lcd comprado no ebay ou deve ser algum específico pra arduino?

Sim e não. O LCD não precisa ser específico para Arduino, mas precisa ser baseado em alguma implementação que já exista para Arduino, para te livrar do trabalho de ter que fazer uma engenharia reversa do protocolo de comunicação.

LCDs que são comuns e que já possuem bibliotecas escritas para Arduino:

- Qualquer um baseado em I2C
- Nokia 5110 ou qualquer variante baseada no controlador PCD8544
- LCDs paralelos (normalmente 8, 16 ou 20 colunas x 1, 2 ou 4 linhas, embora exista outras variedades mais exóticas), baseado no controlador HD44780
- LCDs seriais interfaceados por um CI 74HC595

(na verdade, qualquer display baseado no HD44780 irá funcionar, independentemente se é serial, paralelo, i2c, SPI, etc)

Outros podem funcionar, mas os 4 grupos acima cobrem 98% dos displays disponíveis no mercado, que podem ser facilmente interfaceados com o Arduino.


« Last Edit: April 16, 2013, 12:44:57 pm by AlxDroidDev » Logged

Learn to live: Live to learn.
Showing off my work: http://arduino.cc/forum/index.php/topic,126197.0.html

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

• qual a diferença de eu comprar um shield de motor ou ligar sem o shield?

Jamais se deve ligar um motor diretamente ao Arduino. Há poucas pessoas que vão te dizer o contrário, portanto vou justificar minha resposta.

Veja bem: cada pino do Arduino tem um limite de corrente de 40mA. Isto é o suficiente para acender um LED ou ligar um pequeno buzzer e nada mais. Sério, NADA MAIS. O objetivo dos pinos de saída do Arduino é comunicar com outros dispositivos digitais ou components como transistores, relés, optoacopladores, etc, portanto com 5V (geralmente) e baixíssima corrente, ou seja: apenas sinalização.

A soma de corrente de todos os pinos do Arduino não deve ser superior a 350mA (se alimentado pela USB) ou 700mA se usada alimentação externa.

Os outros dispositivos digitais ou components é que farão algo maior, como acionar um motor, acender uma lâmpada 110V, e por aí vai.

Um motor, ao ser ligado, tem um consumo de corrente muito alto (chamado "corrente de partida"), e mesmo um pequeno motor de CD-ROM pode chegar fácil a 200mA na partida ou arranque. Durante o uso, ao ter alguma carga no motor (demanda de torque), sua demanda de corrente certamente é superior a 40mA. Isto pode e VAI queimar a porta digitial do seu Arduino.

Os shields de motor são excelentes pois usam um CI dedicado (geralmente o L293D ou L298), que usam um fonte de energia externa, diferente da fonte de energia do Arduino, liga os 2 GND (Arduino + fonte externa) juntos, e então usam a sinalização digital do Arduino para ligar/desligar os motores, que por sua vez são alimentados por uma fonte externa. Tecnicamente falando, cada L293D ou L298 são duas pontes-H ("H-bridges"), são uma série de MOSFETs que isolam as sinalização digital da linha de potência.

Você tem a opção de montar seu próprio shield de motores usando MOSFETs e BJTs, ou usando o L293D (como eu fiz, vou postar vídeo de noite).

Um motor shield comum no mercado é um projetado pela LadyAda, que possui 2 x L293D e 1 x 74HC595. Sua grande vantagem é que você usa apenas 3 pinos digitais do Arduino para se comunicar com o 74HC595, que por sua vez conversa com cada um dos L293D. É suficientemente rápido e te economiza vários pinos de saída do Arduino.

Quote
• posso ligar qualquer lcd comprado no ebay ou deve ser algum específico pra arduino?

Sim e não. O LCD não precisa ser específico para Arduino, mas precisa ser baseado em alguma implementação que já exista para Arduino, para te livrar do trabalho de ter que fazer uma engenharia reversa do protocolo de comunicação.

LCDs que são comuns e que já possuem bibliotecas escritas para Arduino:

- Qualquer um baseado em I2C
- Nokia 5110 ou qualquer variante baseada no controlador PCD8544
- LCDs paralelos (normalmente 8, 16 ou 20 colunas x 1, 2 ou 4 linhas, embora exista outras variedades mais exóticas), baseado no controlador HD44780
- LCDs seriais interfaceados por um CI 74HC595

(na verdade, qualquer display baseado no HD44780 irá funcionar, independentemente se é serial, paralelo, i2c, SPI, etc)

Outros podem funcionar, mas os 4 grupos acima cobrem 98% dos displays disponíveis no mercado, que podem ser facilmente interfaceados com o Arduino.

opa obrigado pelas excelentes dicas..
acho que a maioria dos LCDS que eu vi no ebay eram HD44780, lembro por que a muito tempo queria colocar um no pc para ser comunicado via serial ou usb (acabei nao comprando pois nao tenho serial no pc e usb era meio caro)...
obrigado pelas excelentes respostas, eu acredito que vou comprar um shield, pois no meu projeto que preciso fazer acho que seria excelente 2 motores e o shield é bem barato.. também vi sobre ponte H..

Não tens aqui evento nenhum... e como o getKey não bloqueia, sempre que carregas numa tecla o Arduino lê umas quantas. Porque não fazer isto bloqueante? Ou pelo menos testar se houve mudanca de teclas.

Code:
unsigned char tecla_anterior;
unsigned char tecla;
if (tecla != tecla_anterior) {
//faz algo
}
tecla_anterior = tecla;
Isto é um exemplo para usar strings em vez de Strings.

Code:
char senha[6];//seenha com 5 caracteres.
unsigned char pointer = 0;

...

  if (customKey){
    if (pointer<5) { //só tens 6 espacos...
       senha[pointer++] = customKey;
       senha[pointer] = '\0'; //terminador
       lcd.print(customKey);
    }
  }
  
    if (customKey == 'C'){
      delay (500); //para que é isto?????
      pointer = 0;
      senha[0] = '\0'; //se imprimires, não aparece nada.
      lcd.clear();
  }

    if (customKey == '#'){
      delay (500);//Isto é para????
      lcd.clear();
      lcd.print(senha);
    }

opa valeu!
esses delays eram para aparecer mesmo o simbolo na tela por exemplo: 123C e depois apagava, deixei mais para teste mesmo...

o primeiro exemplo eu não entendi direito...
e no segundo botei como você disse, está acontecendo o mesmo de antes, quando digito os numeros e depois o #, para ele imprimir a senha guardada ele imprime apenas o # (última tecla apertada), sendo que deveria imprimir tudo que eu digitei antes. Isto é para apenas eu saber que esta gravando as teclas que aperto nessa variável para eu futuramente compara-la a uma senha CORRETA que irá realizar uma coisa (no caso moveria um servo motor).
« Last Edit: April 16, 2013, 05:16:46 pm by joneco » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

OPA!! consegui =), peguei uma library de password =) http://www.arduino.cc/playground/uploads/Code/Password.zip

Code:
/*
||  Simple Password Entry Using Matrix Keypad
||  4/5/2012 Updates Nathan Sobieck: Nathan@Sobisource.com
||
*/


//* is to validate password  
//# is to reset password attempt

/////////////////////////////////////////////////////////////////

#include <Password.h> //http://www.arduino.cc/playground/uploads/Code/Password.zip
#include <Keypad.h> //http://www.arduino.cc/playground/uploads/Code/Keypad.zip
#include <LiquidCrystal.h>
#include <Servo.h>

Servo motor;
Password password = Password( "1234" ); // Password de Acesso
const byte ROWS = 4; // 4 linhas no teclado
const byte COLS = 3; // 3 colunas no teclado
// Define o resultado ao clicar em cada um dos botões
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};

byte rowPins[ROWS] = {9, 8, 7, 6}; //pinos das linhas do teclado
byte colPins[COLS] = {10, 13, 0,}; //pinos das colunas dos teclados
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // numero das portas do lcd


// Create the Keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){

  lcd.begin(16,2); // tamanho do lcd
  keypad.addEventListener(keypadEvent); //add an event listener for this keypad
  motor.attach(1); // pino onde está o servo
}

void loop(){
  keypad.getKey();    // mapear tecla apertada
}

//take care of some special events
void keypadEvent(KeypadEvent eKey){
  switch (keypad.getState()){
    case PRESSED:

lcd.println(eKey);
switch (eKey){
 case '*': checkPassword(); break;
 case '#': password.reset(); break;
 default: password.append(eKey);
     }
  }

}

void checkPassword(){          // evento de checar o password
  if (password.evaluate()){
    lcd.clear();
    lcd.println("Success");
    motor.write(79);
    //Código caso funcione
  }else{
    lcd.clear();
    lcd.println("Wrong");
    password.reset();
    delay (1800);
    motor.write(0);
    lcd.clear();
  
    // Código caso falhe
  }
}

o servo tá movendo certinho =), problema que no proteus liguei ele direto na entrada 1 sem nada a mais...,
e também nossa motor + lcd + keypad = todas as 14 portas digitais foram ocupadas smiley-cry, queria por outro motor agora ferro...
... achei esse material aqui : http://playground.arduino.cc/Portugues/LearningShiftOut
ele utiliza um chip 74HC595 de deslocamento... alguém utiliza ele?
« Last Edit: April 16, 2013, 06:23:30 pm by joneco » Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3244
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Isso é porque não és novato!! lol

Não... apenas porque bluetooth gasta mais energia do que seria desejável para um robot. Sim, é muito bonito e giro controlar com o telemóvel, mas em termos de eficiência não é ideal. Apenas por isso.

Veja bem: cada pino do Arduino tem um limite de corrente de 40mA.
ISTO ESTÁ ERRADO!!
E pior, continua a ser perpetuado como correcto por toda a gente aqui no fórum.

O limite de corrente de 40mA é o limite antes da destrucão do pino (Absolute Maximum Ratings). Tanto é que se leres um pouco mais abaixo no datasheet do chip vês que cada porto apenas pode fornecer ou receber cerca de 100mA. Bate certo que um porto de 8 bits apenas consiga fornecer 100 mA e no entanto cada pino pode fornecer 40???

Logo ao calcular resistências ou correntes nunca se deve utilizar esses valores do quadro Absolute Maximum Ratings. Mas porque a maior parte das pessoas não quer mergulhar no datasheet usa esse como se fosse um valor seguro.

Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

alguém me ajuda com o 74HC595...
eu não consigo entender ele, já li milhões de demonstrações etc... achei muito confuso.
queria por exemplo mandar sinal para a entrada Q1 dele, como deveria fazer? e se fosse Q2?
e da pra eu trabalhar com if? tipo "if a entrada Q1 está High" então fzer isso..

vlw galera!
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3244
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Primeiro tens de ler o que está no 595... e só depois podes usar um if.

Já viste a funcão ShiftIn?
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Primeiro tens de ler o que está no 595... e só depois podes usar um if.

Já viste a funcão ShiftIn?
não, vou ver o datasheet dele todo... mas consegui uma library chamada SniftOutMega, muito boa, jah que posso refeir diretamente a uma das portas eu declaro o nome de um 595
ShiftOutMega mega(latchPin, dataPin, clockPin, qtdRegistradores); //Inicia a biblioteca passando os parametros de uso.

e nos voids posso utilizar
mega.shiftWrite(1, HIGH);
bem simples...

o problema está sendo a referencia, por exemplo, colocar no inicio do programa em quais pinos estão o LCD e o motor.attach(?????) qual pino está o motor...
mas para acender LED ele é perfeito, problema mesmo é que não acho nada sobre ele na internet...
Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 510
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Solbre o 74h + LCD, não comparei os datasheets para ver o que muda entre os 74h além do número de portas, mas eu tenho guardado os links abaixo para usar em projetos futuros (hoje o máximo que tenho tempo de fazer é dar umas olhadas por aqui, e olhe lá rs)
http://www.instructables.com/id/LCD-Shifter-for-Arduino/
http://100year.cocolog-nifty.com/blog/arduino/index.html
http://www.3guys1laser.com/blog-cheap-arduino-2-wire-lcd-display-0

Algumas Dúvidas Rápidas esta se tornando muitas dúvidas rs
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Solbre o 74h + LCD, não comparei os datasheets para ver o que muda entre os 74h além do número de portas, mas eu tenho guardado os links abaixo para usar em projetos futuros (hoje o máximo que tenho tempo de fazer é dar umas olhadas por aqui, e olhe lá rs)
http://www.instructables.com/id/LCD-Shifter-for-Arduino/
http://100year.cocolog-nifty.com/blog/arduino/index.html
http://www.3guys1laser.com/blog-cheap-arduino-2-wire-lcd-display-0

Algumas Dúvidas Rápidas esta se tornando muitas dúvidas rs
hahaaha, vou dar uma olhada!! obrigado =).. acabou virando um tópico pessoal isso sim hahha no inicio eram algumas dúvidas e continuam sendo =) Kkkk
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
não da certo de jeito nenhum no Proteus smiley-cry
« Last Edit: April 17, 2013, 11:08:26 pm by joneco » Logged

Pages: 1 [2] 3   Go Up
Jump to: