Show Posts
Pages: 1 2 3 [4] 5 6 ... 21
46  International / Deutsch / Schimmelwarner mit DHT22 MLX90614 und 40x4 LCD Display on: March 22, 2014, 03:54:00 pm
Hallo,

ich habe mal mit ein bisschen interessanter Hardware herumgespielt und herausgekommen ist ein Schimmelwarner.
Die Idee kam mir schon beim Testsketch zum DHT22. Aus Lufttemperatur und Luftfeuchte läßt sich der Taupunkt berechnen. Hintergrund ist, das kalte Luft weniger Feuchtigkeit aufnehmen kann. Der Taupunkt ist die Temperatur, wo sich aus den gemessenen Werten dann Sättigung ergibt. Die Formel hatte bereits ein netter Mensch bereits in Code "gegossen"  smiley
Wenn nun eine Außenwand kälter ist, als der Taupunkt, dann kondensiert dort die Luftfeuchtigkeit. Die Folge sind feuchte Wände und Schimmel! Durch Stoßlüften kann man die Luftfeuchte verringern und so aus dem gefährlichen Bereich herauskommen. Ein herkömmlicher Temperaturfühler, um die Wand zu messen ginge auch, wäre aber uncool  smiley-cool
Zufällig las ich hier im Forum von den berührungslosen IR Sensoren von Melexis. In einem Ebayshop in Amerika gibts die Dinger für ca. 11,50€, samt Link auf einen Testsketch.
Auf einem 20x4 LCD ließ sich alles nur abkürzen und nicht sinnvoll darstellen. Glücklicherweise hat Pollin 40x4 LCD Displays für 12,95€ - sogar billiger, als der freundliche Chinse liefern kann  smiley-grin
Das Problem ist, das 40x4 Display elektrisch eigentlich zwei 40x2 Displays sind und 2 Enable Pins besitzt. Die LiquidCrystalFast Lib kann damit umgehen.
Nun noch ein bisschen die einzelnen Libs und Codeschnipsel miteinander verwursten und heraus kommt dann ein Schimmelwarner.
Code:
// Einbinden des DHT22
#include <i2cmaster.h>
#include "DHT.h"                            // Library für DHT Sensor aufgerufen
#define DHTPIN 7                            // DHT Sensor wird aus PIN 9 ausgelesen
#define DHTTYPE DHT22                       // DHT Type wird auf DHT22 festgelegt
DHT dht22(DHTPIN, DHTTYPE);                 // DHTPIN und DHTTYE in dht22 definiert

#include <LiquidCrystalFast.h>

LiquidCrystalFast lcd(12, 11, 10, 9, 5, 4, 3, 2);
        // LCD pins: RS  RW  EN1 EN2 D4 D5 D6 D7

// make some custom characters:
byte ue[8] = {   // 0 off, 1 set pixel
  0b00000,       // in 5x7 caracter 8. row is unused
  0b01010,
  0b00000,
  0b10001,
  0b10001,
  0b10011,
  0b01101,
  0b00000
};

void setup(){
  // create a new character
  lcd.createChar(0, ue);

  i2c_init(); //Initialise the i2c bus
  PORTC = (1 << PORTC4) | (1 << PORTC5);//enable pullups 
  lcd.begin(40, 4);

dht22.begin();                              // Auslesen des DHT22 beginnt
}

void loop()
{
  float t = dht22.readTemperature();        // Die Temperatur wird vom DHT22 ausgelesen, Wert in "t" schreiben
  float h = dht22.readHumidity();           // Die Luftfeuchte wird vom DHT22 ausgelesen, Wert in "h" schreiben
  float a = 17.271;
  float b = 237.7;
  float taupunktTemp = (a * t) / (b + t) + log(h/100);
  float p = (b * taupunktTemp) / (a - taupunktTemp);
 
    int dev = 0x5A<<1;
    int data_low = 0;
    int data_high = 0;
    int pec = 0;
   
    i2c_start_wait(dev+I2C_WRITE);
    i2c_write(0x07);
   
    // read
    i2c_rep_start(dev+I2C_READ);
    data_low = i2c_readAck(); //Read 1 byte and then send ack
    data_high = i2c_readAck(); //Read 1 byte and then send ack
    pec = i2c_readNak();
    i2c_stop();
   
    //This converts high and low bytes together and processes temperature, MSB is a error bit and is ignored for temps
    double tempFactor = 0.02; // 0.02 degrees per LSB (measurement resolution of the MLX90614)
    double tempData = 0x0000; // zero out the data
    int frac; // data past the decimal point
   
    // This masks off the error bit of the high byte, then moves it left 8 bits and adds the low byte.
    tempData = (double)(((data_high & 0x007F) << 8) + data_low);
    tempData = (tempData * tempFactor)-0.01;
   
    float celcius = 1.38*(tempData - 273.15);
    float fahrenheit = (celcius*1.8) + 32;

lcd.setCursor(0, 0);                       // Anfang auf Stelle 0, Zeile 0 setzen
lcd.print("Lufttemp.  :");                      // Temp. : auf LCD ausgeben
lcd.setCursor(13, 0);                       // Anfang auf Stelle 9, Zeile 0 setzen
lcd.print(t ,1);                              // Wert aus "t" ausgeben (Temperatur)
lcd.setCursor(17, 0);                      // Anfang auf Stelle 15, Zeile 0 setzen
lcd.write(0xD0 + 15);                      // Grad-Zeichen (Arduino 1.00)
lcd.print("C   Wandtermp.: ");               // C auf LCD ausgeben
lcd.print(celcius ,1);
lcd.write(0xD0 + 15);                      // Grad-Zeichen (Arduino 1.00)
lcd.setCursor(39, 0);
lcd.print("C");

lcd.setCursor(0, 1);                       // Anfang auf Stelle 0, Zeile 1 setzen
lcd.print("Luftfeuchte:");                      // Luft.: auf LCD ausgeben
lcd.setCursor(13, 1);                       // Anfang auf Stelle 9, Zeile 1 setzen
lcd.print(h ,1);                              // Wert aus "h" ausgeben (Luftfeuchtigkeit)
lcd.setCursor(18, 1);                      // Anfang auf Stelle 15, Zeile 1 setzen
lcd.print("%   Taupunkt  : ");                          // % auf LCD ausgeben
lcd.print(p ,1);
lcd.write(0xD0 + 15);
lcd.print("C");
lcd.setCursor(1, 3);
// if(celcius - taupunktTemp < 0)  // richtige Formel
if(celcius - taupunktTemp > 0) // zum Testen
{
lcd.print("!!! Achtung L");
lcd.write(0);
lcd.print("ften, Schimmelgefahr !!!");
delay(1500);
lcd.setCursor(1, 3);
lcd.print("                                      ");
//delay(500);
}}
Das nächste Problem war, das kein "ü" für Lüften im Zeichensatz des Displays enthalten ist. Also suchte ich mir raus, wie man Sonderzeichen generieren kann.
Ok, es ginge vielleicht noch ein wenig übersichtlicher, indem ich mehr von set Cursor Gebrauch gemacht hätte, aber mit Leerzeichen weiterschreiben geht auch, bis zur Darstellung der nächsten Variablen  smiley-evil
Da es für das Blinken der Warnung in Zeile 4 keinen extra Befehl gibt, habe ich mal auf die Schnelle zum ungeliebten Delay gegriffen. Nach dem Überschreiben mit Leerzeichen ist kein weiteres Delay notwendig, da die Schleife ohnehin eine beachtliche Laufzeit besitzt. Außerdem beruhigt das Delay eine zu hektische Anzeige bei den Messwerten  smiley
Ich habe um den Warntext sichtbar zu machen und das Blinken implementieren zu können aus dem kleiner ein größer gemacht. Für das echte Gerät dann einfach die Auskommentierung tauschen.
Werde das Ganze batteriebetrieben zu einem handlichen Messgerät aufbauen. Allerdings werde ich das Pollin Display gegen ein anderes Modell austauschen, da es ein schlecht ablesbares Stromschwein ist. Die Hintergrundbeleuchtung säuft satte 500mA und die Lesbarkeit ist trotzdem nur semigut. Ein normales grünliches Display mit schwarzer Schrift ist besser lesbar und ohne Backlight wesentlich stromsparender.

Gruß Gerald
47  International / Deutsch / Re: Sekundentaktanzeige - Schönheitsfehler on: March 17, 2014, 03:35:45 pm
Klingt doch interessant. Und wie sieht es mit dem berühmten Unterschied zwischen Theorie und Praxis aus? Funktioniert es auch so, wie wir uns das denken  smiley-wink
Ob nun 2 oder 3 Drähte wäre mir Rille, wenn's so viel bringt  smiley-grin

Gruß Gerald
48  International / Deutsch / Re: Sekundentaktanzeige - Schönheitsfehler on: March 17, 2014, 01:38:23 pm
Gerald, welche Quelle hast du für die neue Libary? Würde gerne mal testen, ob diese wirklich so rund läuft, wie du vermutest. Habe in meinen Projekten nirgends einen DS18B20 im Einsatz, aber habe hier welche liegen.

War gestern schon in der Waagerechten  smiley
Hier bin ich darüber gestolpert: http://www.milesburton.com/?title=Dallas_Temperature_Control_Library
Guck dir mal die Betas und die Beschreibung hier an:
3.7.0]

Rob Tillaart was kind enough to introduce a new revision to the library, asynchronous calls. When you request a temperature you can choose to manage the delay in your own code and continue processing other data. This code is still considered beta so if you spot any issues let me know.


Ich werde nur nicht so 100% ig draus schlau, ob da nur dynamisch die Bitrate runtergeschraubt wird, oder ob man die Wartezeit anderweitig nutzen kann.
Eigentlich sollte doch, wenn man den Sensor nicht parasitär (was verbreiteter ist) sondern direkt versorgt, die Zwangspause wegfallen. Die Pause soll nach meinem Verständnis nur den Ausgang blockieren, damit sich der interne Kondensator aufladen kann, der wärend des Auslesens das IC versorgt. Versorge ich ihn direkt, muß ich nicht den Ausgang blockieren, der Arduino kann was anderes machen, auch wenn das IC nicht angesprochen werden darf, wärend es sich "vollsaugt"
Mache ich da jetzt einen Denkfehler?
49  International / Deutsch / Re: Sekundentaktanzeige - Schönheitsfehler on: March 16, 2014, 03:27:44 pm
Ich habe auch gleich an den Dallas gedacht. Der braucht mindestens 750 ms um sich mit Strom "vollzusaugen". Guck mal, es gibt ne neue Lib für den Dallas, da haben sie das irgendwie anders gelöst, das der nix anderes mehr ausbremst  smiley-wink

Gruß Gerald
50  International / Deutsch / Re: Thermometer mit 4x LED-Siebensegmentanzeigen, SAA1064 u. LM35 on: March 16, 2014, 10:25:47 am
Muß ich mal gucken, ob ich das hin bekomme. Das kann aber etwas dauern.
Den PID als Core Funktion würde ich aber auf alle Fälle favorisieren, da ich eventuell die Temperatur noch im Bereich von 35-40° einstellbar machen werde.

Gruß Gerald
51  International / Deutsch / Re: Thermometer mit 4x LED-Siebensegmentanzeigen, SAA1064 u. LM35 on: March 15, 2014, 06:13:05 pm
An die Parameter würde ich mich rantasten. http://de.wikipedia.org/wiki/Faustformelverfahren_%28Automatisierungstechnik%29
Ich weiß nur nicht, wie ich die PID Lib einbinden muß. Include bekomme ich noch hin, aber dann...  smiley-red
Und ich muß dem PID beibringen, das er PWM halt langsamer machen soll für ein SSR

Gruß Gerald
52  International / Deutsch / Re: Thermometer mit 4x LED-Siebensegmentanzeigen, SAA1064 u. LM35 on: March 15, 2014, 03:59:17 pm
Den verlinkten SAA1064 Code habe ich ja als Basis genommen. Sieht man sogar noch ganz oben. Nur als Thermometer hat den keiner dokumentiert. Bei ELV gibts was mit dem MCP9801 http://www.elv.de/i2c-4-digit-led-display-i2c-4dled-komplettbausatz.html

Die Heizung ist eigentlich nicht überdimensioniert. Nur handelt es sich um Zementwiderstände, die wie ein Nachtspeicherofen noch Wärme speichern.
Hier hatte ich das Ganze mal vorgestellt: http://forum.arduino.cc/index.php?topic=200232.msg1477064#msg1477064
Dachte nur, wenn es schon eine PID Lib gibt, ist deren Verwendung eleganter  smiley-wink

Gruß Gerald
53  International / Deutsch / Re: Bei LCD 2004 Farbe der Hintergrundbeleuchtung austauschen? on: March 15, 2014, 01:43:45 pm
Ich würde sagen wenn Du Display und die neue Hintergrundbeleuchtung zusammenzählst ist ein teures rotes Display immernoch billiger.
Grüße Uwe

Besonders, wenn man dann noch eins "zerbastelt"  smiley-twist  *ROFL* *duck und weg*  smiley-grin
54  International / Deutsch / Re: IDE (arduino.exe) Startparameter? on: March 15, 2014, 01:41:25 pm
Hm, mal eine ganz verquere Idee... so von hinten durch die Brust ins Auge...  smiley
Wenn du dir eine virtuelle Maschine installierst, auf der du dann die 2. IDE laufen lässt?  smiley-grin
Den USB Port kannst du vom Host System zur VM durchrouten, so das die serielle Kommunikation funzt. Unter Windows 7 kannst du in der Prof., Enterprise und Ultimate Version sogar auf dem Host Programmverknüpfungen auf die VM wie ein ganz normales Programm starten. Der dazu notwendige Start der VM geschieht automatisch  smiley-cool

Gruß Gerald
55  International / Deutsch / Re: Bei LCD 2004 Farbe der Hintergrundbeleuchtung austauschen? on: March 15, 2014, 01:31:14 pm
Wie sagt Radio Eriwan gleich? "Also, im Prinzip ja..."
Der Teufel liegt aber, wie so oft, im Detail  smiley-twist
Du kannst das Diaplay zerlegen, indem du die Metallklammern, die den Metallkäfig auf der Rückseite der Leiterplatte fixieren, geradebiegen und so den Käfig nach vorn abziehen. Ich empfehle dir dazu ausdrücklich Handschuhe zu tragen, um keine Fingerabdrücke zu hinterlassen. Denn Fingerabdrücke auf den Kontaktflächen für die Leitgummis können zu Kriechströmen und Fehlfunktionen des Displays führen! Fusseln im optischen Gang sind ebenfalls suboptimal  smiley-eek-blue
Ansonsten beim Zusammenbau alles nochmal mit Isopropanol putzen.
Merke: es kann gut gehen, muß aber nicht!
Die Hintergrundbeleuchtungen gibt es in einigen Bauformen bei Pollin - aktive Bauelemente - Displays und dann Seite 2 oder 3.
Bei den Hintergrundbeleuchtungen gibt es verschiedene Bauformen: SMD-LEDs flächig und eine Streuscheibe davor oder eine polierte Plexi-Scheibe und an den Stirnseiten wird über LEDs eingekoppelt. Kann man ändern, aber einfach geht definitiv anders  smiley-razz

Gruß Gerald
56  International / Deutsch / Thermometer mit 4x LED-Siebensegmentanzeigen, SAA1064 u. LM35 on: March 15, 2014, 01:08:16 pm
Hallo,
endlich habe ich es geschafft, den Code von ursprünglich einem LCD Display auf die Ausgabe auf LED Anzeigen aufzubohren. Der SAA1064 eigent sich dafür sehr gut, denn er kümmert sich ums Multiplexen der Anzeige, um die Strombegrenzung der Anzeigen und man kann die Anzeige auch über lediglich 4 Adern etwas abgesetzt vom µC platzieren. 1m Kabel sind überhaupt kein Problem.
youtube Videos gibts davon genug, nur keinen fertigen Code.
Deshalb hier mein Code:
Code:
/*
Example 39.3 - NXP SAA1064 I2C LED Driver IC Demo III
Displaying numbers on command
http://tronixstuff.com/tutorials > chapter 39
John Boxall July 2011 | CC by-sa-nc
*/
#include "Wire.h" // enable I2C bus
#include <LiquidCrystal_I2C.h>
#define sensorPin 0    // Verbunden mit LM35 Ausgang
#define DELAY1 10      // kurze Wartezeit beim Messen
#define DELAY2 500     // kurze Wartezeit beim Anzeigen
#define heaterPin 9     // Heizung-Pin
#define threshold 40   // Schalt-Temperatur für Lüfter (40 Grad Celsius)
#define hysterese 0.1  // Hysterese-Wert (0.1 Grad Celsius)
const int cycles = 50; // Anzahl der Messungen
LiquidCrystal_I2C lcd(0x20, 16, 2); // Adresse auf 0x27 für 16 Zeichen/2 Zeilen

byte saa1064 = 0x70 >> 1; // define the I2C bus address for our SAA1064 (pin 1 to GND)
int digits[12]={
63, 6, 91, 79, 102, 109, 125,7, 127, 111, 204, 0};
// these are the byte representations of pins required to display each digit 0~9, °C sign, and blank digit
// right hand digit 180° flip - DP ist used as ° symbol :-) 204 is °c for big C use 143
void setup()
{
  lcd.init(); // LCD initialisieren
  lcd.backlight(); // Hintergrundbeleuchtung aktivieren 
pinMode(heaterPin, OUTPUT);
Wire.begin(); // start up I2C bus
delay(500);
initDisplay();
}
void initDisplay()
// turns on dynamic mode and adjusts segment current to 12mA
{
Wire.beginTransmission(saa1064);
Wire.write(B00000000); // this is the instruction byte. Zero means the next byte is the control byte
Wire.write(B01110111); // control byte (dynamic mode on, digits 1+3 on, digits 2+4 on, 21mA segment current
// left 111 is relevant for current left hand "1" 12mA, middle 6mA and right 3mA - so you can tewak it
Wire.endTransmission();
}
void clearDisplay()
{
Wire.beginTransmission(saa1064);
Wire.write(1); // start with digit 1 (right-hand side)
Wire.write(0); // blank digit 1
Wire.write(0); // blank digit 2
Wire.write(0); // blank digit 3
Wire.write(0); // blank digit 4
Wire.endTransmission();
}
void displayInteger(int num, int zero)
{
int hundred, ten, one;
// breakdown number into columns
hundred = num/100;
ten = (num-(hundred*100))/10;
one = num-((hundred*100)+(ten*10));
if (zero==1) // yes to leading zero
{
Wire.beginTransmission(saa1064);
Wire.write(1);
Wire.write(digits[hundred]);
Wire.write(digits[ten]+128); // 128 turns on DP
Wire.write(digits[one]);
Wire.write(digits[10]); // print position 10 from arry - °C
Wire.endTransmission();
delay(10);
}
else
if (zero==0) // no to leading zero
{
if (hundred==0) { hundred=11; }
if (hundred==0 && num<100) { hundred=16; }
if (ten==0 && num<10) { ten=16; }
Wire.beginTransmission(saa1064);
Wire.write(1);
Wire.write(digits[hundred]);
Wire.write(digits[ten]+128);
Wire.write(digits[one]);
Wire.write(digits[10]);
Wire.endTransmission();
delay(10);
}
}
void loop()
{
 {
float resultTemp = 0.0;
for(int i = 0; i < cycles; i++){
int analogValue = analogRead(sensorPin);
float temperature = (5.07 * 100.0 * analogValue) / 1024; // reale Spannung Ub (theoretisch 5.00V)
resultTemp += temperature; // Aufsummieren der Messwerte
delay(DELAY1);
  }
resultTemp /= cycles; // Berechnung des Durchschnitts
lcd.clear(); // clear-Methode löscht LCD Inhalt
lcd.print("Temp: "); // print-Methode schreibt LCD Inhalt
lcd.print(resultTemp);
lcd.setCursor(10, 0);
#if ARDUINO < 100
lcd.print(0xD0 + 15, BYTE); // Grad-Zeichen (Arduino 0022)
#else
lcd.write(0xD0 + 15); // Grad-Zeichen (Arduino 1.00)
#endif
lcd.print("C");
lcd.setCursor(0, 1); // setCorsor-Methode positioniert LCD-Cursor
lcd.print("Heizung: ");
{
delay(20);
}
clearDisplay();
{
displayInteger(resultTemp * 10 ,0); //for LED-Display x10 - DP is hardwired
 delay(5);
if(resultTemp < (threshold - hysterese)) // Temperaturvergleich pos.
digitalWrite(heaterPin, HIGH);           // Heizung anschalten
else if(resultTemp > (threshold + hysterese)) // Temperaturvergleich neg.
digitalWrite(heaterPin, LOW);                 // Heizung abschalten
lcd.print(digitalRead(heaterPin) == HIGH?"an":"aus");
delay(DELAY2);
}
}
}
Bei den Anzeigen handelt es sich um "Ostalgie"
Es sind Siebensegmentanzeigen des Typ VQA 28 Made in GDR  smiley-cool
Owohl ich den lichtstärksten Suffix F habe, sind die Dinger nicht besonders hell. Das ist auch der Symbolgröße von 17,9mm geschuldet. Deshalb bestrome ich die Dinger auch mit den max. möglichen 21mA, die der SAA1064 zuläßt  smiley
Die rechte Stelle ist kopfstehend montiert, um den Dezimalpunkt als "°" Zeichen verwenden zu können.  Die Segmente habe ich so verschaltet, als würde die Anzeige richtig herum montiert sein, also wie vom Hersteller angegeben. Wenn man anders verdrahtet, ist Pos. 10 im Arry für die Anzeige von °C entsprechend anzupassen!
204 als kleines c oberhalb der Mitte finde ich optisch am besten. 143 erzeugt ein großes C
Im Zehner (3. Stelle) wird 128 addiert, da 128 den Dezimalpunkt aktiviert. Segment a=1, b=2, c=4 usw. Aufaddieren erzeugt dann das anzuzeigende Zeichen.
displayInteger(resultTemp * 10 ,0); hat folgenden Sinn: die Temperatur wird x10 genommen, da ich für das LED Display eine 3stellige ganze Zahl benötige - der Dezimalpunkt (+128) ist hart gesetzt und bewirkt wieder die Division durch 10 beim Betrachter  smiley-wink
,0 bedeutet, den Integerwert auf eine ganze Zahl zu runden - null Nachkommastellen
Für das ursprüngliche 16x2 I2C LCD Display habe ich den Code zur Kontrolle drin gelassen.
Ich habe das Ganze, wie man am Code erkennen kann, zur Steuerung eines Wärmeschrankes genutzt. Das LCD war mir dort zu schlecht ablesbar.
Meine Frage ist nun, wie kann ich die PID_v1 Lib. hier noch mit einbinden? Pin 9, der Heizungs-Pin steuert über einen Transistor die LED eines Solid-State-Relay an.
So mit festem Schaltpunkt, wie ich es jetzt habe, steigt die Temparatur nach dem Abschalten bei 40°C noch auf 41,5°C an, da die Heizwiderstände noch Wärme abgeben. Dieses Überschwingen ist aber nicht gewünscht  smiley-confuse
Kann mir da jemand weiterhelfen?

Gruß Gerald
57  International / Deutsch / Re: Header für Arduino mini pro gesucht on: March 15, 2014, 11:45:12 am
Das Zauberwort ist IC-Adapterleiste - also garnicht so weit weg, von den IC Fassungen  smiley-wink
http://www.reichelt.de/IC-Sockel/AW-122-20/3/index.html?&ACTION=3&LA=2&ARTICLE=4426&GROUPID=3215&artnr=AW+122%2F20
Ich kaufe die z.B. bei Reichelt. Pass aber auf, das eine Ende ist dick, das andere dünn. Irgend was war da. entweder die dünne Seite rutscht aus dem Präzisionssockel, oder die Dicke geht nicht rein  smiley-evil

Gruß Gerald
58  International / Deutsch / Re: Öltankmessung on: March 15, 2014, 04:24:05 am
Kann es sein, das du im Tank Echos bekommst?
Bau den Sensor mal in ein Plastikrohr ein. Ein 80 oder 120 mm Abflussrohr eignet sich gut dafür. Das Rohr geht bis zum Tankboden und wird unten einfach 45° abgesägt. So war die Messeinrichtung, die ebenfalls auf US basierte, an Galvanikbecken in der Firma gelöst.
Alternativ bastel dir doch was mit Schwimmer. ein Rohr mit einem Schwimmer passenden Durchmessers und im Schwimmer einen starken (Neodym)Magneten. Außerhalb des Rohres dann eine Batterie Reedkontakte, die du um Leitungen zu sparen als Matrix verschalten kannst  smiley

Gruß Gerald
59  International / Deutsch / Re: Neuer IC reagiert nicht on: March 15, 2014, 03:54:17 am
du mußt die Fuses so setzen, wie beim ATMEGA, der auf dem Arduino verbaut war. Im Auslieferungszustand ist der 328 auf 8 MHz internen Takt gesetzt. Damit ist er langsamer und die Timings in den Programmen hauen logischerweise nicht mehr hin. Zum Zweiten ist der interne Oszillator nicht so frequenzstabil und es treten die beschriebenen Probleme an der seriellen Schnittstelle auf. Das ist in etwa so, als wenn 2 Leute Gleichschritt laufen sollen und einer rennt mal vor und mal bleibt er zurück  smiley-wink
Mit Arduino Boardmitteln mußt du 1x den Bootloader brennen, damit die Fuses gesetzt werden. Du kannst aber auch mit Extremeburner oder ähnlichem gezielt die Fuses setzen. Pass aber auf, es gibt Möglichkeiten den Chip so zu verfusen, das du dich selber aussperrst  smiley-evil

Gruß Gerald
60  International / Deutsch / SAA1064 abgekündigt on: March 14, 2014, 05:48:18 pm
Hallo,

habe heute mit Schrecken festgestellt, das der SAA1064 abgekündigt ist, bei Reichelt nicht mehr lieferbar und bei Ebay schon die Preise steigen.
Hab gleich mal bei Aliexpress geguckt und mir beim freundlichen Chinesen noch ein paar Chips geschossen  smiley-cool
Das Gespann SAA1064 mit LED Anzeigen hat schon seine Vorteile. Ablesbarkeit im Dunklen, von Weitem und aus großen Winkeln, wo ein LCD schon nicht mehr lesbar ist. Dazu kommt noch, das man das Display über ein 4 adriges Kabel auch locker mal einen Meter vom µC entfernt betreiben kann.

Gruß Gerald
Pages: 1 2 3 [4] 5 6 ... 21