Olá pessoal, teno um código para controlar a tv, mais esse código fica execultando eutomáticamente sem parar, quero que mande o sinal para o led ir quando usado o serial monitor, como por exemplo: digitar 1 e manda um sinal, digitar 2 e manda outro sinal, segue o código:
// This sketch will send out a Nikon D50 trigger signal (probably works with most Nikons)
// See the full tutorial at http://www.ladyada.net/learn/sensors/ir.html
// this code is public domain, please enjoy!
int
IRledPin =
13
;
// LED connected to digital pin 13
// The setup() method runs once, when the sketch starts
void
setup() {
// initialize the IR digital pin as an output:
pinMode(IRledPin, OUTPUT);
Serial.begin(
9600
);
}
void
loop()
{
Serial.println(
"Sending IR signal"
);
SendChannelUpCode();
delay(
500
);
}
// This procedure sends a 38KHz pulse to the IRledPin
// for a certain # of microseconds. We'll use this whenever we need to send codes
void
pulseIR(
long
microsecs) {
// we'll count down from the number of microseconds we are told to wait
cli();
// this turns off any background interrupts
while
(microsecs >
0
) {
// 38 kHz is about 13 microseconds high and 13 microseconds low
digitalWrite(IRledPin, HIGH);
// this takes about 3 microseconds to happen
delayMicroseconds(
10
);
// hang out for 10 microseconds
digitalWrite(IRledPin, LOW);
// this also takes about 3 microseconds
delayMicroseconds(
10
);
// hang out for 10 microseconds
// so 26 microseconds altogether
microsecs -=
26
;
}
sei();
// this turns them back on
}
void
SendChannelUpCode() {
//Cole aqui o código criado no passo 1
}
Tags:
Bom dia NCA
Sei que você é novo aqui no forum, e não se deu o trabalho de ler.
Ler o item que tem logo no tab: INICIO.
Vamos lá.
Só ajudo amigos que não colam sketch na área de texto do tópico.
Sou velho e ranzinza.
Se remover o code, e anexar como arquivo, posso reconsiderar minha decisão de não ajudá-lo.
Leia: http://labdegaragem.com/forum/topics/sugest-o-de-como-postar
RV
Obs: Se você não concorda comigo, ou acha que fui muito ranzinza, nada posso fazer.
Aco que vc deveria criar um html e postar, eu excluiria e posstava, novo eu sou só que ja pesquisei por muitas horas e não encontrei o que queria, eu não postei como vocês está falando por que eu não conseguir pra ser sinsero, e o link que você colocou não ajudou em nada.
Sou novato em Arduíno mais se quiser que eu faça algo que eu não sei então vou precisar perder mais horas em outro lugar par saber como tirar duvidas aqui?
NCA,
estou simplesmente recomendado que você retire da área de texto do tópico, o seu sketch (Código),
e anexe um arquivo com o conteúdo dele.
Se você assim o fizer, terei imenso prazer em te ensinar a resolver a dificuldade
com o seu sketch.
RV
Como faço isso, pesquisei mais não encontrei como.
Recomendo dar uma olhada em um tutorial mais simples, em portugues, como:
http://labdegaragem.com/profiles/blogs/tutorial-como-utilizar-o-con...
De fato o loop() manda ele fazer isso mesmo: transmitir a cada meio segundo.
Vc precisa criar um sistema de leitura da serial e gerar os comandos só se for recebido o carácter necessário.
O necessário é ler a serial, que vc pode aprender aqui:
https://www.arduino.cc/en/Serial/Available
No exemplo o caracter lido aparece em incomingByte.
Com um comando condicional vc compara ele com o q desejar e toma uma atitude.
https://www.arduino.cc/en/Reference/If
algo como:
if (incomingByte=='1') SendChannelUpCode();
Isso que estou tentando fazer mais sou leigo e pesquisei mais não conseguir, não achei nada semelhante.
Legal, imaginei.
Alguém aqui poderia fazer para vc, mas não seira didático. Entendo que o ideal seria vc aprender a fazer.
Tente fazer da melhor forma possível, não faz mal que não funcione. Aih poste, melhor como anexo, que damos mais um remendo ou outro e vc chega lá.
A parte que fica repetindo infinitamente é a que fica dentro de loop();
Lá é que vc precisa colocar esse trecho do incomingByte.
então eu substituiria o:
loop();
por
if (incomingByte=='1') SendChannelUpCode();?
Na verdade colocar dentro da função loop();
void loop()
{ if (Serial.available() > 0) { //Se tem alguma coisa a ser lida
// Ler a serial
incomingByte = Serial.read();
// se veio '1' manda um [Up].
if (incomingByte=='1') SendChannelUpCode();
}
E assim vai.
Amigo se você puder editar esse em anexo aplicando essa fomula eu agradeço pois eu tentei de todas as formas e não conseguir, desculpa a ingnorância.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por