Show Posts
Pages: [1] 2 3 ... 6
1  International / Deutsch / Re: Dringend! Fehler bei I²C Code unter Ubuntu "Wire.write(0);" nicht möglich?!?! on: February 10, 2014, 08:38:37 am
@jurs

Danke hat geklappt und vielen Dank für die Erklärung!
2  International / Deutsch / Re: Dringend! Fehler bei I²C Code unter Ubuntu "Wire.write(0);" nicht möglich?!?! on: February 10, 2014, 08:37:11 am
Sorry änder ich gleich mal.

Code:
#include <Wire.h>

#define sensor_address 0xDC
#define sensor_reg 0x03
const int start_address = 0x00;

void setup()
{
  Wire.begin();
  Serial.begin(9600);
  Serial.println("Start logging");
}

void auslesen()
{
  float humidity;
  float temp;
 
  byte bytearray[8];
  byte zero = 0x00;
 
  Wire.beginTransmission(sensor_address);
  Wire.write(sensor_reg);
  Wire.write(zero);
  Wire.write(4);
  Wire.endTransmission();
 
  Wire.beginTransmission(sensor_address);
  Wire.write(sensor_reg);
  Wire.write(zero);
  Wire.write(4);
  Wire.endTransmission();
 
  Wire.requestFrom(sensor_address, 8);
 
  for(byte a=0; a < 8; a++)
  {
    bytearray[a] = Wire.read();
  }
 
  humidity = bytearray[2];
  humidity *= 256;
  humidity += bytearray[3];
  humidity /= 10;
 
  temp = bytearray[4];
  temp *= 256;
  temp += bytearray[5];
 
  Serial.print("Feuchtigkeit= ");
  Serial.println(humidity);
 
  if(temp< 65536)
  {
    temp /= 10;
    Serial.print("Temperatur =");
    Serial.print(temp);
  }
  else
  { 
    temp = temp-65536;
    temp /= 10;
    Serial.print("Temperatur= -");
    Serial.println(temp);
  }

  delay(1000); 
 
}

void loop()
{
  auslesen();
 
}
3  International / Deutsch / [gelöst] Fehler bei I²C Code unter Ubuntu "Wire.write(0);" nicht möglich?!?! on: February 10, 2014, 08:21:26 am
Hallo,
ich vesuche gerade ein Temperatur Sensor auszulesen.
Der Sensor ist von Ardafruit und hat die bezeichnung AM2315.
Der Sensor hat eine I²C Schnittstelle unter der ich ihn auslese.
Der Code funktioniert unter Windows einwandfrei leider aber nicht unter Ubuntu.

In der Zeile "Wire.write(0);" taucht ein Fehler auf:

Code:
sketch_feb10a.cpp: In function ‘void auslesen()’:
sketch_feb10a.cpp:27:15: error: call of overloaded ‘write(int)’ is ambiguous
/usr/share/arduino/libraries/Wire/Wire.h:55:20: note: candidates are: virtual size_t TwoWire::write(uint8_t)
/usr/share/arduino/hardware/arduino/cores/arduino/Print.h:49:12: note:                 size_t Print::write(const char*)

Jetzt ist die Frage wie löse ich das Problem.
Der Fehler tritt auch auf wenn cih die "0" als Hex oder Bin Zahl ausgebe.

Wie gesagt unter Windows läufts ohne probleme.

Gruß gibsonuser

Falls gewünscht kann ich den ganzen Code hochladen.
4  International / Deutsch / Re: Hygrochip HYT 271 defekt oder ein Fehler von mir? on: January 24, 2014, 06:26:44 pm
ok danke !
5  International / Deutsch / Re: Hygrochip HYT 271 defekt oder ein Fehler von mir? on: January 24, 2014, 03:01:56 pm
Hi,
ja hab ich gerade getan, ein Lichtsensor:
Scanning...
I2C device found at address 0x39  !
Also das funktioniert einwandfrei.
6  International / Deutsch / Re: Hygrochip HYT 271 defekt oder ein Fehler von mir? on: January 24, 2014, 02:37:43 pm
hatte keinen 4,7k widerstand zur hand deswegen der 4,3k macht ja keinen großen unterschied.
7  International / Deutsch / Re: Hygrochip HYT 271 defekt oder ein Fehler von mir? on: January 24, 2014, 02:36:55 pm
Hallo,
die Leitungen sind etwa 10 cm ich habe jetzt zwischen SDA und VDD und zwischen SCL und VDD jeweils einen 4,3k Pullup Widerstand eingesetzt leider hat das auch nicht geholfen.
Gruß
8  International / Deutsch / Hygrochip HYT 271 defekt oder ein Fehler von mir? on: January 24, 2014, 01:29:22 pm
Hallo,
ich habe bei Conrad den HYT 271 gekauft.
Zunächst wollte ich den Sensor auf Funktionsfähigkeit prüfen mit den im Internet stehenden Codes, jedoch habe ich immer seltsame konstante Werte ausgespuckt bekommen "99.99% - temp: -40.01"


Ich habe vermutet das die standardmäßige I2C Adresse geändert wurde (0x28) und habe den in der playground i2c-scanner benutzt, um die richtige i2c-adresse rauszufinden. 

Code:
// --------------------------------------
// i2c_scanner
//
// Version 1
//    This program (or code that looks like it)
//    can be found in many places.
//    For example on the Arduino.cc forum.
//    The original author is not know.
// Version 2, Juni 2012, Using Arduino 1.0.1
//     Adapted to be as simple as possible by Arduino.cc user Krodal
// Version 3, Feb 26  2013
//    V3 by louarnold
// Version 4, March 3, 2013, Using Arduino 1.0.3
//    by Arduino.cc user Krodal.
//    Changes by louarnold removed.
//    Scanning addresses changed from 0...127 to 1...119,
//    according to the i2c scanner by Nick Gammon
//    http://www.gammon.com.au/forum/?id=10896
// Version 5, March 28, 2013
//    As version 4, but address scans now to 127.
//    A sensor seems to use address 120.
//
//
// This sketch tests the standard 7-bit addresses
// Devices with higher bit address might not be seen properly.
//

#include <Wire.h>


void setup()
{
  Wire.begin();

  Serial.begin(9600);
  Serial.println("\nI2C Scanner");
}


void loop()
{
  byte error, address;
  int nDevices;

  Serial.println("Scanning...");

  nDevices = 0;
  for(address = 0x01; address < 0x7F; address++ )
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();

    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");

      nDevices++;
    }
    else if (error==4)
    {
      Serial.print("Unknow error at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.println(address,HEX);
    }   
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");

  delay(5000);           // wait 5 seconds for next scan
}

Jetzt kommt das nächste Problem : der Scanner sagt :
"Scanning...No I2C devices found"

das heißt also entweder ich habe es falsch angeschlossen oder das teil ist kaputt oder?

Ich habs auf dem Duemilanove und auf einem Uno probiert.
Angeschlossen wurde es wie folgt:
HYT 271 -> Arduino
SDA->A4
GND->GND
VDD-> 3,3V und 5 V (beides ausprobiert)
SCL->A5
9  International / Deutsch / Re: Tlc 5940 RGB Fading on: December 10, 2013, 02:41:59 pm
Quote
Ich würde Dir mal rate ein C- Tutorial zu lesen um einige Grundlagen zu erlernen.
Grüße Uwe.

Recht hast du, ist schon ne weile her als ich das im Studium hatte
kannst du mir einen guten empfehlen?

Gruß
10  International / Deutsch / Re: Tlc 5940 RGB Fading on: December 09, 2013, 06:19:07 pm
Oh man ich frage mich warum ich nicht drauf komme...
Hier für alle mal der Code, er funktioniert einwandfrei!

Code:
Tlc.set(0,4095);  // rot
Tlc.set(2,0);  // blau
for (G = 0; G<=4095; G++)
  {
  Tlc.set(myPins[0,1,2,3],G); //
  Tlc.update();
  delay(2);  // Pause für die Fadegeschwindigkeit.
  }
                 // fade von rot nach grün.
Tlc.set(1,4095);  // grün
Tlc.set(2,0);  // blau
for (R = 4095; R>=0; R--)
  {
  Tlc.set(0,R); //
  Tlc.update();
  delay(2);  // Pause für die Fadegeschwindigkeit.
  }

//fade zu türkis 
Tlc.set(1,4095);  // grün
Tlc.set(2,0);  // blau
for (B = 0; B<=4095; B++)
  {
  Tlc.set(2,B); //
  Tlc.update();
  delay(2);  // Pause für die Fadegeschwindigkeit.
  } 

//fade zu blau 
Tlc.set(2,4095);  // blau
Tlc.set(0,0);  // rot
for (G = 4095; G>=0; G--)
  {
  Tlc.set(1,G); //
  Tlc.update();
  delay(2);  // Pause für die Fadegeschwindigkeit.
  } 
 
//fade zu lila 
Tlc.set(2,4095);  // blau
Tlc.set(0,0);  // rot
for (R = 0; R<=4095; R++)
  {
  Tlc.set(0,R); //
  Tlc.update();
  delay(2);  // Pause für die Fadegeschwindigkeit.
  }

//fade zu rot 
Tlc.set(0,4095);  // rot
Tlc.set(1,0);  // grün
for (B = 4095; B>=0; B--)
  {
  Tlc.set(2,B); //
  Tlc.update();
  delay(2);  // Pause für die Fadegeschwindigkeit.
  } 

Jetzt stellt sich die Frage wie ich am einfachsten das Fading auf alle "Pixel" bekomme?
Habs mit einem Array probiert hat aber nicht geklappt, hat jemand eine gute Idee?

Mein versuch sah ungefähr so aus:

Code:
int myArray[] = {0, 3, 6, 9, 12, 15};
Tlc.set(myArray[],2000);
Tlc.update();

Gruß
11  International / Deutsch / Re: Tlc 5940 RGB Fading on: December 09, 2013, 11:29:05 am
Habs nochmal geändert und kommentiert vielleicht versteht man es jetzt besser:

Code:
int a,b,c,d,e,f,g;
 
// Tlc.set(0,500); Rot    Tlc.set(1,500); Grün     Tlc.set(2,500); Blau           
Tlc.set(0,500); //rotes licht ist an, schleife wird von innen nach außen abgearbeitet

for (g=500; g >= 0; g--)         //blaues licht geht aus es entsteht rot
{
  for (f=0; f <= 500; f++)           // rotes licht geht an es entsteht lila
  {
    for (e=500; e >= 0; e--)        //grünes lich geht aus es entsteht blau
        {
          for (d=0; d <= 500; d++)  //blaues licht geht an es entsteht türkis
          {
            for (c=500; c >= 0; a--)    //rotes licht geht aus es entsteht grün
            {
              for (b=0; b <= 500; b++)   //grünes licht geht an und mischt sich zu gelb
              {
                Tlc.set(1,b);
                Tlc.update();
              }
              Tlc.set(0,c);
              Tlc.update();
            }
            Tlc.set(2,d);
            Tlc.update();
          }
          Tlc.set(1,e);
          Tlc.update();
        }
        Tlc.set(0,f);
        Tlc.update();
      }
  Tlc.set(2,g);
  Tlc.update();
}

12  International / Deutsch / Re: Tlc 5940 RGB Fading on: December 08, 2013, 07:14:56 pm
wie könnte ich das besser lösen?
13  International / Deutsch / Tlc 5940 RGB Fading on: December 08, 2013, 05:53:45 pm
Hallo,
ich habe meinen 64 Pixel Tisch fertig gebaut mittlerweile bin ich bei der Programmierung angekommen.
Ich bin gerade dabei ein Fading Programm zu schreiben, hab wieder ein Fehler den ich nicht finden kann.
Ich hab versucht erstmal eine Led leuchten zu lassen und in den Farben zu faden (von rot-gelb-grün-türkis-blau-lila und wieder zu rot und das die ganze zeit), wollte mich dann langsam hoch arbeiten bis schließlich sowas rauskommt: http://www.youtube.com/watch?v=9264jeI_1m4&feature=youtu.be

Hier mal der Code:
Code:
for (int c=500; c <= 0; c--)
{
  for (int a=0; a <= 500; a++)
  {
    for (int b=500; b <= 0; b--)
        {
          for (int c=0; c <= 500; c++)
          {
            for (int a=500; a <= 0; a--)
            {
              for (int b=0; b <= 500; b++)
              {
                for (int a=0; a <= 500; a++)
                {
                  Tlc.set(0,a);
                  Tlc.update();
                }
                Tlc.set(1,b);
                Tlc.update();
              }
              Tlc.set(0,a);
              Tlc.update();
            }
            Tlc.set(2,c);
            Tlc.update();
          }
          Tlc.set(1,b);
          Tlc.update();
        }
        Tlc.set(0,a);
        Tlc.update();
      }
  Tlc.set(2,c);
  Tlc.update();
}

Vielleicht findet ja jemand auf Anhieb den Fehler momentan faded er von rot nach gelb über grün und hört dann auf und fängt wieder bei rot an....
14  International / Deutsch / Re: kurze frage: 8 byte in double im Arduino Duemilanove möglich? on: December 08, 2013, 05:43:35 pm
hat geklappt danke =)!
15  International / Deutsch / Re: problem bei byte abfragen, es funktioniert immer nur ein byte statt mehreren on: December 07, 2013, 09:57:47 am
Danke war echt ein dummer Fehler...
Gibt es für den Tlc 5940 bzw allgemein Algorithmen für Effekte wie zum Beispiel den Plasma (Rainbow) Effekt?
Wenn ja wo kann man die finden?
Gruß
Pages: [1] 2 3 ... 6