Show Posts
|
|
Pages: 1 2 [3] 4 5 ... 9
|
|
31
|
International / Portugues / Re: Arduino + modulo RF
|
on: May 21, 2012, 06:58:29 am
|
|
Tens de descobrir o protocolo de comunicação entre o telefone e o rádio-base
Não é muito fácil fazer a reengenharia caso a comunicação seja analógica
Se for comunicação digital, é mais fácil
Abraços
|
|
|
|
|
33
|
International / Portugues / Re: Arduino + Xbee + Internet
|
on: May 21, 2012, 06:53:10 am
|
|
Olá
O jeito mais fácil de fazer o Arduino se comunicar com a internet é usando um shield Ethernet
Conectas um cabo do teu roteador ao Arduino e pronto
Se usares XBee, tens de escrever um programa no PC para fazer o roteamento XBee-Ethernet
|
|
|
|
|
34
|
International / Portugues / Re: ERRO: invalid types 'char[int]' for array subscript
|
on: May 20, 2012, 07:07:30 pm
|
Faz assim: #define LEDPIN13 13 #define LEDPIN11 11 #define LEDPIN9 9 #define LEDPIN7 7 #define LEDPIN5 5
void setup() { Serial.begin( 9600 ); pinMode( LEDPIN13, OUTPUT ); pinMode( LEDPIN11, OUTPUT ); pinMode( LEDPIN9, OUTPUT ); pinMode( LEDPIN7, OUTPUT ); pinMode( LEDPIN5, OUTPUT ); }
void loop() { int buffer[ 5 ]; int pinos[ 5 ] = { LEDPIN13, LEDPIN11, LEDPIN9, LEDPIN7, LEDPIN5 }; int indice = 0;
if ( Serial.available() > 0 ) { int input = Serial.read(); if ( input != '0' && input != '1' ) { indice = 0; } else { buffer[ indice++ ] = input; } }
if ( indice == 5 ) { for ( int i = 0; i < 5; i++ ) { if ( buffer[ i ] == '0' ) { digitalWrite( pinos[ i ], LOW ); } else { digitalWrite( pinos[ i ], HIGH ); } } indice = 0; } }
|
|
|
|
|
35
|
International / Portugues / Re: arduino e website (html + CSS)
|
on: May 15, 2012, 09:01:34 am
|
O JavaScript a seguir tem de estar na tua página PHP ou HTML: document.onload = onLoadHandler();
var xhr;
function onLoadHandler() {
if ( window.ActiveXObject ) {
xhr = new ActiveXObject( "Microsoft.XMLHTTP" );
} else if ( window.XMLHttpRequest ) {
xhr = new XMLHttpRequest();
} else {
alert( "Seu navegador nao suporta AJAX" );
} }
function openSocket(command) {
xhr.open( "GET", "suaPaginaPHPQueConversaComOArduino.php?command=" + command, true ); xhr.send(); xhr.onreadystatechange = function () {
if ( xhr.readyState == 4 && xhr.status == 204 ) {
var info = eval( xhr.responseText );
if ( info.cozinha == 1 ) {
// light up the icon for the kitchen } else {
// turn off the icon } } }; }
Depois, toda vez que quiseres averiguar o estado da lâmpada da cozinha, deves chamar a função openSocket() e passar como parâmetro a string "status".
|
|
|
|
|
36
|
International / Portugues / Re: arduino e website (html + CSS)
|
on: May 14, 2012, 12:37:47 pm
|
Podes verificar a cadeia de caracteres vinda do cliente e, se ela contiver "status", tu envias de volta um JSON com a informação que desejas: // // código Arduino // void loop(){
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read char by char HTTP request if (readString.length() < 100) {
//store characters to string readString += c; }
//if HTTP request has ended if (c == '\n') {
//now output HTML data header if(readString.indexOf('?') >=0) { //don't send new page
client.println("HTTP/1.1 204 Zoomkat");
}
///////////////////// control arduino pin if(readString.indexOf("on") >0)//checks for on { digitalWrite(13, HIGH); // set pin 4 high }
if(readString.indexOf("off") >0)//checks for off { digitalWrite(13, LOW); // set pin 4 low }
if(readString.indexOf("status") > 0) //send JSON { int luzcoz1 = digitalRead(PINLUZCOZ1) == HIGH? 1: 0;
client.println("Content-type: application/json"); client.println(); client.print("{ cozinha: "); client.print(luzcoz1, DEC); client.println("}"); }
//clearing string for next read readString="";
//stopping client client.stop(); } } } } }
|
|
|
|
|
37
|
International / Portugues / Re: ajuda com laço for
|
on: May 08, 2012, 07:48:11 pm
|
Coloca o que queres executar dentro do setup() e deixa loop() vazio void setup() { Serial.begin( 9600 ); teste( ); }
void loop() { }
void teste() {
for ( int i = 0; i < 20; i++) { Serial.println( i ); delay( 500 ); }
}
|
|
|
|
|
39
|
International / Portugues / Re: ajuda com eeprom
|
on: May 08, 2012, 06:57:17 am
|
void data_read() {
for( int i = 0; i < 12; i++ ) {
Serial.print( i, DEC ); Serial.print( ": " ); Serial.println( EEPROM.read( i ), HEX );
}
}
|
|
|
|
|
40
|
International / Portugues / Re: ajuda com ponteiro
|
on: May 08, 2012, 06:35:05 am
|
Estás a fazer ponteiro_valor &= key;
que é equivalente a ponteiro_valor = ponteiro_valor & key;
mas vê que ponteiro_valor aponta para o início de um vector; digamos que o vector comece na posição de memória 37: +---+---+---+---+---+ valor | 0 | 0 | 0 | 0 | 0 | +---+---+---+---+---+ ^ | 37 38 39 40 41
Se carregarmos a tecla '0' = 0x30 = 48, ponteiro_valor ganhará o valor 37 & 48 = 32, ou seja, vai acabar apontando para fora dos limites do vector. O que tens que fazer é o seguinte: *ponteiro_valor++ = key;
Assim, vais preencher o vector com o caractere '0' e assim por diante.
|
|
|
|
|
41
|
International / Portugues / Re: Alimentação do Arduino Uno
|
on: May 05, 2012, 03:17:25 pm
|
E se quiser cortar o o fio do adaptador para ficar apenas com o plugin que liga directamente à placa para poder ligar a um adaptador de pilhas também irá funcionar ?
Sim, mas terás que fornecer mais que 7 volts à placa Arduino
|
|
|
|
|
43
|
International / Portugues / Re: Testes ao PIR SE-10 com resultados preocupantes
|
on: May 03, 2012, 06:06:58 am
|
O problema do pulse in é que bloqueia o programa... [code snipped] Ou seja, apesar do timeout, etc... é processamento desperdicado. Além do facto que o pulseIn não garante contagem dum impulso. Basta que o impulso aconteca logo após um timeout e pronto... perdeu-se esse impulso. Daí que testar o flanco (que é o que se pretende, em vez da duracão do impulso) seja uma melhor solucão. Ainda assim, a minha preferida é a do timer como contador. Desculpa não ter dado uma vista de olhos ainda acerca de como o configurar. Vou tentar ver isso hoje. Mas o fato de o pulseIn() pausar o programa é indiferente se o programa depende exclusivamente da detecção do sensor para fazer o que precisa; além do mais, Serial.print()'s e delay()'s também bloqueiam o programa Se queres algo que realmente execute apesar dos bloqueios no programa, usa interrupções: http://arduino.cc/en/Reference/AttachInterrupt
|
|
|
|
|
44
|
International / Portugues / Re: Ethernet Shield + Arduino UNO + Android
|
on: May 02, 2012, 11:19:42 pm
|
|
Já testou acessar de um IP interno o IP externo? Tipo, de um micro que esteja na rede interna, tentando conectar-se ao IP dinâmico externo?
Não use a porta 80, use 8080, como foi dito pelo Kotch, porque normalmente há firewalls dentro do provedor de acesso (seu Turbonet ou Speedy podem estar atrás de um firewall, isso que eu queria dizer)
|
|
|
|
|
45
|
International / Portugues / Re: Ajuda com Instalação Artística
|
on: May 02, 2012, 11:10:16 pm
|
Talvez fosse melhor separar o amp das caixas de som, porque senão ficaria assim o circuito: , /| +------------[--------]------------------[---/ | | [ Relê 1 ] [ | | +------[--------]------------------[___ | | | '<-------------->' \ | | | Muito longo \| | | . . . ' | | [-----------] ----o--------- [ Microfone ] | | . . . [-----------] ----------o--- | | | | . . . | | | | Muito longo , | | '<-------------->' /| +------------[--------]------------------[---/ | | [ Relê 5 ] [ | +------[--------]------------------[___ | \ | \| ' Os relês são controlados pelo Arduino (não desenhado para não poluir o diagrama)
O cabo muito longo que vai do relê à caixa de som amplificada funcionaria como uma antena, captando todo tipo de ruído Caso tenha um amp entre o mic e os relês, o sinal que iria do amp às caixas de som seria forte o bastante para se sobrepor ao ruído eletromagnético ambiente. Poderia ser um cabo coaxial, por exemplo, o que diminuiria ainda mais a captação de ruído desse trecho de cabeamento.
|
|
|
|
|