Show Posts
Pages: [1] 2
1  Using Arduino / Networking, Protocols, and Devices / Re: Read parameters of xbee on: February 09, 2013, 04:29:13 am
Hello, thanks for reply. Pauls, the Xbee is Xbee ZB Pro S2B and the xbee is configurated how end device at. To connected the xbee with arduino I use the xbee shield and de pin7 is in the XBee, is pin 12 CTS  / DIO7.
Nick, thanks for the link, I will read the information.
Thanks,
Regards.
2  Using Arduino / Networking, Protocols, and Devices / Read parameters of xbee on: February 08, 2013, 07:27:37 am
I'm trying to read parameters of  xbee. The problem is I can not read parameters if the DIO7/CS  pin of Xbee is disabled but if I activate pin DIO7, the arduino crashes.
The Xbee is in mode at.
the code is this:
Code:
byte data;
void setup()
  {
  Serial.begin(9600);
 }

void loop()
  {
  Serial.println(" \r\n read:");   
  Serial.print("+++");
  Serial.println("\r\nATID");  //  ID 
  while(Serial.available()==0){}
  while(Serial.available()>0){
  data=Serial.read();
  delay(5);       
  }   
   Serial.print(char(data));   
   Serial.println("\r\nATCN");   
  while(Serial.available()==0){}
  while(Serial.available()>0){
  data=Serial.read();
  delay(5);       
  }   
  Serial.print(char(data));
  delay(1000);
}


Any solutions?
Thanks,
Regards.
3  Using Arduino / Networking, Protocols, and Devices / Re: Wireless Switch on: February 06, 2013, 02:13:58 pm
I'll try to do with XBee, the system will sleep 30 seconds and 10ms awake.
Thanks,
Regards.
4  International / Español / Acelerómetro adxl345 on: February 01, 2013, 09:43:25 am
Hola, estoy usando el adxl345. Consigo leer los datos y conectarlo al micro por interrupción. El problema es cuando el micro lo tengo en modo powerDown, el acelerómetro deja de funcionar, nunca entra en la interrupción. Sin embargo, si en lugar de conectar el acelerómetro a la interrupción conecto un cable entre la interrupción y gnd el micro se despierta y entra en la interrupción. Estoy usando la interrupción número 5, pin 18. El código es el siguiente:
Code:
#include <Wire.h>
#include <ADXL345.h>
 #include <Enerlib.h>
Energy energy;
ADXL345 adxl;

unsigned long init_int_time = 0;
unsigned long last_int_time = 0;
int activo=LOW;
void setup(){
  Serial.begin(9600);

 attachInterrupt(5,adx,RISING);
 
configuraradx();
}
  int x,y,z;
  byte interrupts;
void loop(){
 
  //Boring accelerometer stuff   
 
  adxl.readAccel(&x, &y, &z); //read the accelerometer values and store them in variables  x,y,z
 
  // Output x,y,z values - Commented out
  Serial.print(x);
  Serial.print('\t');
  Serial.print(y);
  Serial.print('\t');
  Serial.println(z);
  delay(500);

 
 
    interrupts = adxl.getInterruptSource();

 if(activo)
 {
   activo=LOW;
   Serial.println("Acelerometro");
   delay(10);
 }
//  // freefall
//  if(adxl.triggered(interrupts, ADXL345_FREE_FALL)){
//    Serial.println("freefall");
//    //add code here to do when freefall is sensed
//  }
//
//  //inactivity
//  if(adxl.triggered(interrupts, ADXL345_INACTIVITY)){
//    Serial.println("inactivity");
//     //add code here to do when inactivity is sensed
//  }
//
//  //activity
//  if(adxl.triggered(interrupts, ADXL345_ACTIVITY)){
//    Serial.println("activity");
//     //add code here to do when activity is sensed
//  }
//
//  //double tap
//  if(adxl.triggered(interrupts, ADXL345_DOUBLE_TAP)){
//    Serial.println("double tap");
//     //add code here to do when a 2X tap is sensed
//  }
//
//  //tap
//  if(adxl.triggered(interrupts, ADXL345_SINGLE_TAP)){
//    Serial.println("tap");
//     //add code here to do when a tap is sensed
//  }
energy.PowerDown();
}



void adx()
{
  init_int_time = millis();
   
  if (init_int_time - last_int_time > 200) {
   
        activo = HIGH;
   
  last_int_time = init_int_time;
  }
}
void configuraradx()
{
     adxl.powerOn();
  //set activity/ inactivity thresholds (0-255)
  adxl.setActivityThreshold(75); //62.5mg per increment
  adxl.setInactivityThreshold(75); //62.5mg per increment
  adxl.setTimeInactivity(10); // how many seconds of no activity is inactive?
 
  //look of activity movement on this axes - 1 == on; 0 == off
  adxl.setActivityX(1);
  adxl.setActivityY(1);
  adxl.setActivityZ(1);
 
  //look of inactivity movement on this axes - 1 == on; 0 == off
  adxl.setInactivityX(1);
  adxl.setInactivityY(1);
  adxl.setInactivityZ(1);
 
  //look of tap movement on this axes - 1 == on; 0 == off
  adxl.setTapDetectionOnX(1);
  adxl.setTapDetectionOnY(1);
  adxl.setTapDetectionOnZ(1);
 
  //set values for what is a tap, and what is a double tap (0-255)
  adxl.setTapThreshold(10); //62.5mg per increment
  adxl.setTapDuration(15); //625μs per increment
  adxl.setDoubleTapLatency(10); //1.25ms per increment
  adxl.setDoubleTapWindow(80); //1.25ms per increment
 
  //set values for what is considered freefall (0-255)
  adxl.setFreeFallThreshold(7); //(5 - 9) recommended - 62.5mg per increment
  adxl.setFreeFallDuration(45); //(20 - 70) recommended - 5ms per increment
 
  //setting all interupts to take place on int pin 1
  //I had issues with int pin 2, was unable to reset it
  adxl.setInterruptMapping( ADXL345_INT_SINGLE_TAP_BIT,   ADXL345_INT1_PIN );
  adxl.setInterruptMapping( ADXL345_INT_DOUBLE_TAP_BIT,   ADXL345_INT1_PIN );
  adxl.setInterruptMapping( ADXL345_INT_FREE_FALL_BIT,    ADXL345_INT1_PIN );
  adxl.setInterruptMapping( ADXL345_INT_ACTIVITY_BIT,     ADXL345_INT1_PIN );
  adxl.setInterruptMapping( ADXL345_INT_INACTIVITY_BIT,   ADXL345_INT1_PIN );
 
  //register interupt actions - 1 == on; 0 == off 
  adxl.setInterrupt( ADXL345_INT_SINGLE_TAP_BIT, 1);
  adxl.setInterrupt( ADXL345_INT_DOUBLE_TAP_BIT, 1);
  adxl.setInterrupt( ADXL345_INT_FREE_FALL_BIT,  0);
  adxl.setInterrupt( ADXL345_INT_ACTIVITY_BIT,   0);
  adxl.setInterrupt( ADXL345_INT_INACTIVITY_BIT, 0);
}

Gracias,
Saludos.
5  Using Arduino / Networking, Protocols, and Devices / Wireless Switch on: January 31, 2013, 09:43:36 am
Hello, I found this page: http://www.wirelessirrigation.com/sensors.html
They have a wireless switch and the battery will last for several years. I wondered how you could do this. I know the Xbee technology but it has a big consumption so  that the battery will last as long.
The only way to use Xbee devices is sleeping the devices but then the switch does not open or closes instantly.

Then, How can I make it?

Thanks,
Regards.
6  Using Arduino / Project Guidance / Re: Several switches connected to the same pin. on: January 10, 2013, 03:58:27 pm
Hello, thanks for the help. I will wire  the switches in series.
Thank you very much.
7  International / Español / Re: Varios pulsadores a la misma interrupción on: January 10, 2013, 05:52:55 am
Gracias, me ayudo mucho, usaré la puerta and hecha con diodos.
Saludos y gracias.
8  Using Arduino / Project Guidance / Several switches connected to the same pin. on: January 10, 2013, 04:18:45 am
Hello, I want to connect several switches to the same pin interrupt.
Each switch has this schematic:
http://www.arcan.es/wp-content/uploads/2009/03/reset.jpg[/img]]
But my switches are NC, normally closed, then, the arduino can not detect the interrupt of several switches. It can only detect if there is one switch connected.

Can anyone tell me how to solve this? How can i connected several switches NC to the same pin?

Thanks,
Regards.
9  International / Español / Varios pulsadores a la misma interrupción on: January 10, 2013, 04:01:08 am
Hola, estoy intentando conectar varios pulsadores a la misma interrupción , cada pulsador tendría el siguiene esquema :
http://www.arcan.es/wp-content/uploads/2009/03/reset.jpg
La diferencia es que lo estoy conectando al pin de la interrupción cero, pin digital 2, configurado como FALLING. El problema es que mis pulsadores tienen que ser normalmente cerrados, por lo que al tener varios el arduino no detecta la interrupción. ¿Se os ocurre alguna forma de que pueda conectar "x" pulsadores NC al mismo pin y detectar el cambio de estado?
Gracias,
Saludos.
10  International / Español / Configurar XBee en modo bajo consumo on: December 13, 2012, 04:30:14 am
Hola, estoy tratando de configurar los diferentes modos de bajo consumo del Xbee, lo tengo configurado cono end device. La configuración del X-CTU es la siguiente:
SM=4;  Cyclic sleep
SP=3E8; 1000ms*10ms
SN=3C; 60
ST=1388;5000 ms
Por lo que tengo entendido el tiempo que estaría en modo sleep es el siguiente:
SP*SN=(1000*10)*60=600000; 10 minutos
Entonces la antena estaría dormida durante 10 minutos, después  permanecería despierta 5 segundos y luego se vuelve a dormir.
Mi problema es que la antena solo permanece dormida unos 30 segundos y luego está despierta los 5 segundos del ST.
¿Alguien me podría decir si me estoy equivocando o como podría hacerlo?
11  International / Hardware / Re: Programador avrisp stk 500 no funciona on: October 25, 2012, 02:53:24 am
Hola, selecciono el micro en Atmel Studio 4 y no funciona. Descargué el Atmel Studio 6 y creo un nuevo proyecto y en Tools voy a add stk500 selecciono el puerto serie, COM26, y luego en Tools-->Device Programming-->tool no aparece nada, es como si el atmel studio no detectara el programador. También probe en la opción No tool Selected y tampoco me reconoce el programador.
Saludos.
12  International / Hardware / Re: Programador avrisp stk 500 no funciona on: October 24, 2012, 06:07:25 am
Hola, gracias por responder. El administrador me lo detecta como Prolific USB to serial comm port, ahora lo tengo en el COM26. Probé a ponerlo en el COM2 y nada.
Saludos.
13  International / Español / Re: Problema con librería libcompass on: October 24, 2012, 06:03:28 am
Hola, prueba con estos dos códigos.

Código 1:
Code:
#include <Wire.h>
int HMC6352Address = 0x42;
// This is calculated in the setup() function
int slaveAddress;
int ledPin = 13;
boolean ledState = false;
byte headingData[2];
int i, headingValue;
void setup()
{
// Shift the device's documented slave address (0x42) 1 bit right
// This compensates for how the TWI library only wants the
// 7 most significant bits (with the high bit padded with 0)
slaveAddress = HMC6352Address >> 1;   // This results in 0x21 as the address to pass to TWI
Serial.begin(9600);
pinMode(ledPin, OUTPUT);      // Set the LED pin as output
Wire.begin();
}
void loop()
{
  // Flash the LED on pin 13 just to show that something is happening
  // Also serves as an indication that we're not "stuck" waiting for TWI data
  ledState = !ledState;
  if (ledState) {
    digitalWrite(ledPin,HIGH);
  }
  else
  {
    digitalWrite(ledPin,LOW);
  }
  // Send a "A" command to the HMC6352
  // This requests the current heading data
  Wire.beginTransmission(slaveAddress);
  Wire.write("A");              // The "Get Data" command
  Wire.endTransmission();
  delay(10);                   // The HMC6352 needs at least a 70us (microsecond) delay
  // after this command.  Using 10ms just makes it safe
  // Read the 2 heading bytes, MSB first
  // The resulting 16bit word is the compass heading in 10th's of a degree
  // For example: a heading of 1345 would be 134.5 degrees
  Wire.requestFrom(slaveAddress, 2);        // Request the 2 byte heading (MSB comes first)
  i = 0;
  while(Wire.available() && i < 2)
  {
    headingData[i] = Wire.read();
    i++;
  }
  headingValue = headingData[0]*256 + headingData[1];  // Put the MSB and LSB together
  Serial.print("Current heading: ");
  Serial.print(int (headingValue / 10));     // The whole number part of the heading
  Serial.print(".");
  Serial.print(int (headingValue % 10));     // The fractional part of the heading
  Serial.println(" degrees");
  delay(500);
}



Código 2:
Code:
byte val = 0;
  byte data[2];
  int  j, frac;

 
void setup()  { 
  Serial.begin(9600);
  delay(100);
  Wire.begin();
 
  Serial.print("RST\r\n");
  delay(100); 
}


void loop()
{
 
  Wire.beginTransmission(byte(0x21));
  Wire.write(0x41); //A
  Wire.endTransmission();
  delay(8); //6000 microseconds minimum 6 ms

  Wire.requestFrom(0x21, 2);
  j = 0;
  while(Wire.available())
  {
    char c = Wire.read();
    data[j] = c;
    j++;
  }
  frac = data[0]*256 + data[1];
 
  Serial.println( (frac/10.0));
  delay(1000);
 
}
14  International / Hardware / Programador avrisp stk 500 no funciona on: October 23, 2012, 01:35:07 pm
Hola, me compré un programador como este:
http://www.cooking-hacks.com/index.php/atmel-avrisp-stk500-usb-isp-programmer.html
Instalo los drivers y el avr studio 4 que me proporciona el cd. Al arrancar el avr studio no me reconoce el programador y el arduino ide tampoco, uso windows 7 Ultimate 64 bits. ¿Alguien echo a andar este programador?
Saludos.
15  International / Español / Re: Programar arduino mega2560 por isp con otro arduino on: October 23, 2012, 01:31:08 pm
No pasa nada, por ahora no fui capaz de hacerlo funcionar. Lo peor es que hace unos meses me funcionó el arduino como isp pero nose porque ahora no funciona. Si soy capaz de solucionarlo ya lo posteo.
Saludos.
Pages: [1] 2