Pages: [1]   Go Down
Author Topic: Conversion Digital/analogica  (Read 705 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola a todos.
Estoy intentando generar una onda analogica partiendo de una digital con un PCF8591(I2C) y un arduino UNO.
Para ello voy a partir de la PWM de anchura variable que genera el ejemplo "Fade".
He creado un codigo pero la salida del PCF8591 da 0 y no se porque. la conexion hardware estoy bastantes seguro de que esta bien hecha. creo que puede ser problema del codigo.
Este es mi script:

Code:
#include <Wire.h>

       
int brightness = 0;    // how bright the LED is
int fadeAmount = 5;    // how many points to fade the LED by

// the setup routine runs once when you press reset:
void setup()  {

   Wire.begin();
   Serial.begin(9600);
}

// the loop routine runs over and over again forever:
float onda() 
{
  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;

  // reverse the direction of the fading at the ends of the fade:
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ;
  }     
 
  return brightness; 
}

void loop()
{
 int brightness;

 brightness = onda();
 analogWrite(9, brightness);
 
 Wire.beginTransmission(B10010010);     
 //los bits 0,1 y 2 son A2,A1 y A0 respectivamente y representan la direccion del dispositivo
 //Wire.write(B01000000);   //Byte control: configura las salidas y habilita Aout     
 Wire.write(brightness);                 
 Wire.endTransmission(); 
}

El error debe de estar en la funcion Loop que es la que yo he hecho.
Simplemente quiero que el uP envie al PCF la señal y que este la convierta de modo que no necesito leer nada con el micro.

Ahora explico mis dudas sobre el codigo.
1) La libreria "wire.h" habilita las salidas A4 y A5 del arduino haciendo innecesario que yo lo haga modificando los bits del registro TWRC? Como deberia poner este registro sino?
2) Supongo que de alguna manera tendre que recoger la señal "Fade" generada por el micro y enviarla a  la patilla A4(SDA) no?
3) He visto algunos codigos para otros dispositivos y no enviaban el byte de control. Es porque alguna de las librerias ya lo hace o algo asi?
4) Alguien ve donde estaria el fallo en el codigo?

Espero que podais ayudarme.
Un saludo.
Logged

Pages: [1]   Go Up
Jump to: