Show Posts
Pages: 1 ... 3 4 [5]
61  International / Español / Re: Utrasonidos controlando nivel de líquido (Solucionado) on: November 17, 2011, 03:00:40 pm
He encontrado un pequeña descripción de un tipo de sensor. Consiste en un flotador que al subir hace de puente entre dos resistencias paralelas. Lo que no entiendo es porque el liquido del depósito no hace de puente entre ellas.

http://www.vdo.es/generator/www/es/es/vdo/main/products_solutions/cars/replacement_parts/fuel_supply_systems/fuel_level_sensors/tubular_type_sensors/tubular_type_sensors_es.html

Aparentemente esto seria un sensor muy facil de construir y adaptable a cualquier tipo de depósito.
62  International / Español / Re: Utrasonidos controlando nivel de líquido (Solucionado) on: November 17, 2011, 11:09:17 am
El aforador que yo conocia y al que proponia conectarle un potenciometro es este
http://www.lanautica.com/aforador-mecanico-con-indicador-de-nivel-23cm-p-11502.html?cPath=24_294

Al subir la boya hace girar la varilla que tiene en el centro y la aguja, simplemente va unida a la varilla.

Pero he encontrado estos dos sistemas..

http://www.lanautica.com/aforador-captador-universal-capac-300mm-p-6669.html?cPath=24_294
Este sistema parece el mas profesional. Pero no se en que consiste.

http://www.lanautica.com/aforador-agua-y-carburante-39cm-p-30561.html?cPath=27_161
Y este que parece estar fabricado con sensores hall.. Pero que da una salida en la que varia la resistencia...

Trataré de buscar mas información sobre estos sistemas. O si alguien los conoce que nos oriente sobre como funcionan.
63  International / Español / Re: Utrasonidos controlando nivel de líquido (Solucionado) on: November 16, 2011, 11:10:27 am
Estaba siguiendo este post con mucho interes, pues llevo mucho tiempo buscando un sistema para la medición del nivel de un depósito de gasolina, con el añadido de que está montado en una barca.

De esta manera tenemos el problema de que cualquier electrónica que se añada debe de estar fuera del depósito, o totalmente aislada de los gases.

Algunos tapones de depósito de este tipo, llevan un sistema de aforador mecánico que mueve una aguja, la idea seria enganchar un pote al eje que mueve la aguja.

Voy a ver si encuentro alguna foto y explico mejor lo que digo
64  International / Español / Re: Posible OFFTOPIC - Panel Solar que uso darle mientras me decido de instalarlo on: September 22, 2011, 02:35:20 am
Para las resistencias no te compliques, pues tienen que ser blindadas ya que estan en contacto con agua. Yo me iria a una chatarreria a buscar un termo viejo.
Si no, tienes "electricfor" donde puedes encontrar cualquier tipo de resistencias http://www.electricfor.com/en/index.htm

Si se hace un deposito con dos resistencias el problema viene cuando vuelve a salir el sol, la resistencia con 200W no se si será capaz de mantener el calor, depende del aislamiento, capacidad del depósito, etc... en caso de que no fuera capaz, tendria que entrar la "electrica" de nuevo, con lo cual no habremos hecho nada.

A mi parecer la mejor idea es la de dos depósitos de manera que cuanto mas caliente entre el agua al termo, menos tiempo funcionaran sus resistencias.

65  International / Español / Re: Posible OFFTOPIC - Panel Solar que uso darle mientras me decido de instalarlo on: September 21, 2011, 09:17:28 am
Con 200 W, teniendo en cuenta que solo los da en las mejores condiciones, tendrias que armarte de paciencia. No es viable para usar en un termo de los normales.

Una opción seria tener un acumulador mas grande donde esté "precalentando" todo el dia y de ahi pase al termo, la caldera o lo que uses normalmente. Digo que tiene que ser grande, para poder aprovechar todas las horas de luz,y precalentar toda el agua posible
66  International / Español / Re: MIDI con arduino on: September 13, 2011, 06:16:16 am
Sigue este manual..

http://todoarduino.blogspot.com/2009/07/midi-capitulo-1-instalacion-del.html

Me parece que simplemente es un problema con los programas que utilizas.
Recuerda cerrar el IDE de arduino antes de abrir el S2MIDI
67  International / Español / Re: Ayuda con codigo controlador midi basico on: September 08, 2011, 01:17:44 pm
Lo tienes muy facil. Ya tienes creadas dos variables, una para cada potenciometro. Debes de crear tantas como potenciometros mas vayas a usar.
Y luego copiar la funcion que tiene cada variable dentro del loop y pegarla tantas veces como variables hayas creado, cambiado el nombre de la variable.

Si te fijas vien veras lo que cambia en cada variable, y podras añadir otras nuevas.

Ademas creo que el codigo no esta bien del todo, pero primero prueba a añadir los potenciometros.

Ten en cuenta que para poder usar el arduino como controlador midi, tienes que usar programas como el midiyoke o el midiox, si no, no te lo reconocerá ningún software.
68  International / Español / Re: Ayuda con controlador MIDI on: May 10, 2011, 08:41:02 am
Bueno pues un montón de horas despues ya he terminado de comprender el codigo y de implementar el noteoff.

Al final todo el fallo lo cometia al sumar y desplazar bits en binario, un simple parentesis te puede volver loco.

Copio el codigo de como queda, puesto que funciona muy bien, aunque esta un poquillo feo porque no lo he limpiado.

Code:
// S2MIDI Multi key Arduino code
// Handles matrixed keypads and controllers at the same time
// This code is not supported, updated, etc. For example only.

int midiChannel = 9;
int outPin = 13;       // the number of the output pin
int analogPin = A4;
byte portMaskD = B10001000; //B00110001;
byte portMaskB = B00010000;  // Pins we care about are high
int keypadKeys[] = {4232,  // No keys pressed
                     4224, //apretado botón A
                     4104, //apretado botón B
                     136}; //apretado botón C

// Key de-bouncing stuff
int lastKey = 0;
int pulso;
long time = 0;
int debounce = 150;

// Analog smoothing stuff
int lastAnalog = 0;
int analogSmooth = 2;  // Amount of change needed to send control change

void setup()
{
  // Setup relivant pins, slow way but only done once
 
  pinMode(3, INPUT); digitalWrite(3, HIGH); // pull high
  pinMode(7, INPUT); digitalWrite(7, HIGH); // pull high
  pinMode(12, INPUT); digitalWrite(12, HIGH); // pull high
  pinMode(outPin, OUTPUT);  // Output LED
 
 //Serial.begin(9600); //Opcional para pruebas
 Serial.begin(31250); //para MIDI
}

void loop()
{
  int c = 0;
  int reading = 0;
// Read important pins 
  reading = PIND & portMaskD;
  reading += (PINB & portMaskB) << 8;
//Serial.println(reading,BIN);  delay (1000);// show raw input for finding keycodes
//Serial.println(reading,DEC);  delay (1000);// show raw input for finding keycodes

// Lookup key pressed
  c = ((sizeof(keypadKeys)+1)/2)-1;
  while (keypadKeys[c] != reading && c>0)
    c--;
// Play note
  if (c != lastKey && pulso ==1) {
        switch (lastKey) {
          case 1:
          noteOn(midiChannel, 41, 0);
          break;
          case 2:
          noteOn(midiChannel, 40, 0); // debug
          break;
          case 3:
          noteOn(midiChannel, 56, 0); // debug
          break;
      }
  }   
  if (c != lastKey && millis()-time > debounce) {
   time = millis();     
       switch (c) {
          case 0:
          pulso=0;
          break;
          case 1:
          noteOn(midiChannel, 41, 120);
          pulso=1;
          break;
          case 2:
          noteOn(midiChannel, 40, 120); // debug
          pulso=1;
          break;
          case 3:
          noteOn(midiChannel, 56, 120); // debug
          pulso=1;
          break;
      }
  }

 
 
 
 lastKey = c;

 
// Do analog line
  reading = analogRead(analogPin)/8; // change 0-1024 into 0-127
  if (abs(reading-lastAnalog) > analogSmooth) {
    lastAnalog = reading;
    controlChange(midiChannel,10,reading);  // Send CC10
  }
}


// Send a MIDI note-on message.  Like pressing a piano key
void noteOn(byte channel, byte note, byte velocity) {
  midiMsg(channel+0x90, note, velocity);
}

// Send a MIDI note-off message.  Like releasing a piano key
void noteOff(byte channel, byte note, byte velocity) {
   midiMsg(channel+0x80, note, velocity);
}

// Send a MIDI control change
void controlChange(byte channel, byte controller, byte value) {
   midiMsg(channel+0xB0, controller, value);
}

// Send a general MIDI message
void midiMsg(byte cmd, byte data1, byte data2) {
  digitalWrite(outPin,HIGH);  // indicate we're sending MIDI data
  Serial.print(cmd, BYTE);
  Serial.print(data1, BYTE);
  Serial.print(data2, BYTE);
  digitalWrite(outPin,LOW);
}

PD: hubiera agradecido algún consejillo, eh!!
69  International / Español / Ayuda con controlador MIDI on: May 04, 2011, 11:19:46 am
Estoy tratando de construir un controlador MIDI para controlar software de música, y he encontrado unos ejemplos que tratan de optimizar el codigo para consegir la menor latencia posible.

El codigo es el siguiente:
Code:
// S2MIDI Multi key Arduino code
// Handles matrixed keypads and controllers at the same time
// This code is not supported, updated, etc. For example only.

int midiChannel = 9;
int outPin = 13;       // the number of the output pin
int analogPin = A4;
byte portMaskD = B10001000; //B00110001;
byte portMaskB = B00010000;  // Pins we care about are high
int keypadKeys[] = {4232,  // No keys pressed
                     4224,
                     4104,
                     136};

// Key de-bouncing stuff
int lastKey = 0;
long time = 0;
int debounce = 50;

// Analog smoothing stuff
int lastAnalog = 0;
int analogSmooth = 2;  // Amount of change needed to send control change

void setup()
{
  // Setup relivant pins, slow way but only done once
 
  pinMode(3, INPUT); digitalWrite(3, HIGH); // pull high
  pinMode(7, INPUT); digitalWrite(7, HIGH); // pull high
  pinMode(12, INPUT); digitalWrite(12, HIGH); // pull high
  pinMode(outPin, OUTPUT);  // Output LED
 

  Serial.begin(31250);
}

void loop()
{
  int c = 0;
  int reading = 0;
// Read important pins 
  reading = PIND & portMaskD;
  reading += (PINB & portMaskB) << 8;
//  Serial.println(reading); // show raw input for finding keycodes // show raw input for finding keycodes

// Lookup key pressed
  c = ((sizeof(keypadKeys)+1)/2)-1;
  while (keypadKeys[c] != reading && c>0)
    c--;
// Play note
  if (c != lastKey && millis()-time > debounce) {
      lastKey = c;
      time = millis();
       switch (c) {
          case 1:
          noteOn(midiChannel, 41, 120);
          break;
          case 2:
          noteOn(midiChannel, 40, 120); // debug
          break;
          case 3:
          noteOn(midiChannel, 56, 120); // debug
          break;
      }
  }
// Do analog line
  reading = analogRead(analogPin)/8; // change 0-1024 into 0-127
  if (abs(reading-lastAnalog) > analogSmooth) {
    lastAnalog = reading;
    controlChange(midiChannel,10,reading);  // Send CC10
  }
}


// Send a MIDI note-on message.  Like pressing a piano key
void noteOn(byte channel, byte note, byte velocity) {
  midiMsg(channel+0x90, note, velocity);
}

// Send a MIDI note-off message.  Like releasing a piano key
void noteOff(byte channel, byte note, byte velocity) {
   midiMsg(channel+0x80, note, velocity);
}

// Send a MIDI control change
void controlChange(byte channel, byte controller, byte value) {
   midiMsg(channel+0xB0, controller, value);
}

// Send a general MIDI message
void midiMsg(byte cmd, byte data1, byte data2) {
  digitalWrite(outPin,HIGH);  // indicate we're sending MIDI data
  Serial.print(cmd, BYTE);
  Serial.print(data1, BYTE);
  Serial.print(data2, BYTE);
  digitalWrite(outPin,LOW);
}

tras corregir algunos fallos que tenia en la asignación de puertos, lo he hecho funcionar pero me surge un problema.

Solo escribe un noteon, cuando apretamos un pulsador, pero el programa se piensa que esa nota sigue pulsada porque espera un noteoff.

No entiendo muy bien la logica del codigo y es por esto que no se implementar el noteoff (todavia soy muy novato para este codigo) Alguien puede tratar de explicame para que es la cadena llamada "keypadKeys"...

Tampoco entiendo
reading = PIND & portMaskD;
  reading += (PINB & portMaskB) << 8;
puesto que siempre me da cero, ya que desplaza 8 bits a la izquierda...

A ver si alguien me hecha una mano porque me estoy volviendo loco
70  International / Español / Re: Sensor de efecto hall on: March 15, 2011, 06:19:39 pm
He podido comprobar que lo que me varia el sensor es la intensidad, pero muy poco.
Me varia entre 3 y 4 mA. Comprobado con una resistencia y unos simples calculos, ya que no tengo miliamperimetro.

Al ser un rango tan pequeño la variación de voltage es de solo 0.1v.

Hay alguna manera de adecuar esta señal para hacerla mas adecuada para poder contar pulsos? Algún tipo de operacional?
71  International / Español / Re: Sensor de efecto hall on: March 10, 2011, 08:45:10 am
Perdona que el retraso en contestar, pero con el trabajo ya se sabe...

Lo tengo alimentado con 5v y me da una salida constante de 3v, independientemente de que el sensor este detectando el campo magnetico o no.

Por mas que he leido no entiendo el concepto de colector abierto por lo que no te puedo contestar a esto.

He probado con varios condensadores en serie, pero el resultado es el mismo, no se si es porque no he utilizado en condensador adecuado.

Si conecto un led a la salida del sensor y circula un flujo por el flujostato veo parpadear el led, aunque la salida sigue siendo de 3v. Puede ser que lo que me varie sea la intensidad y no el voltaje?
72  International / Español / Sensor de efecto hall on: March 02, 2011, 09:15:48 am
Antes de nada me presento.

Mis conocimientos de electrónica y programación son muy bajos, para mi es un hobby y llevo poco en este mundo del Arduino.
Me dedico a la climatización por lo que mis proyectos van dirigidos hacia ese mundo. Mi intención es monitorizar el flujo de agua que fluye por una tuberia.

Para esto quiero utilizar un flujostato rotativo de la marca Caleffi, muy utilizado en algunas calderas. No tengo el datasheet, pero es un sensor de efecto hall. y tengo claro como se conecta.

El problema es que he intentado medir los pulsos que me da, basandome en un codigo de un sensor parecido. El codigo es: http://www.seeedstudio.com/forum/viewtopic.php?f=4&t=989&p=3632#p3632

pero no me devuelve ningún resultado. He probado conectando la salida a un led y el led permanece iluminado, pero se aprecia perfectamente un leve parpadeo. Creo que el problema esta en que la salida da un voltaje muy bajo y por eso las entradas de arduino no lo reconocen como un flanco, y por eso no me cuentan los pulsos.

No tengo un osciloscopio, ni medios para poder comprobar esto, por lo que no se mas puedo hacer.

Agradeceria cualquier pista

Adjunto unas fotos por que no se ponerlas en el mensaje



Pages: 1 ... 3 4 [5]