-
Thread
Sensirion SHT11 Code
Danke für den Code! Hier ein Test: [c] char buffer[64]; sht11_init(); for(;;){ sht11_start_measure(); _delay_ms( 1000 ); while( !sht11_measure_finish() ); sprintf( buffer, "%i.%i °C %i.%i %%\n", sht11_get_tmp()/100, sht11_get_tmp()%100, sht11_
Der Kommentar bezieht sich auf diese 3 Zeilen zusammen: [c] clrBits(PORT(SHT11_PORT), SHT11_SCL | SHT11_SDA); // SCK output low, SDA input/high setBits(DDR(SHT11_PORT), SHT11_SCL); clrBits(DDR(SHT11_PORT), SHT11_SDA); [/c] Für das "high" in "input/high" sorgt
-
Thread
Zeigt her Eure Kunstwerke! Gesperrt Bilder
Timer-IRQ-Routine mit variablen Zeitscheiben: [code] static char interval[] = { 0x10, 0x20, 0x40, 0x40, 0x40, 0x80, 0x40, 0x40 }; static char bitindex[] = { 0, 1, 2, 4, 3, 4, 3, 4 }; ISR (TIMER0_COMPA_vect) { static unsigned char cnt = 0; static unsigned char *
bit 0 wird 0x10 Timer-Counts dargestellt bit 1 wird 0x20 Timer-Counts dargestellt bit 2 wird 0x40 Timer-Counts dargestellt bit 3 wird 0x40 + 0x40 = 0x80 Timer-Counts dargestellt bit 4 wird 0x40 + 0x80 + 0x40 = 0x100 Timer-Counts dargestellt. Damit habe ich 8 Zeitscheiben die jeweils den 5 Bits
-
Thread
AVR - SHT11 liefert zu große Werte
[c] #include <avr/io.h> #include <util/delay.h> //Anschlussdefinition des SHT11 #define SHT_SCK_DDR DDRB #define SHT_DATA_DDR DDRB #define SHT_SCK_PORT PORTB #define SHT_DATA_PORT PORTB #define SHT_DATA_PIN_IN PINB #define SHT_SCK_PIN PB0 #define
Sensor zurücklieferst. Den zurückgelieferten Wert übergibst du dann Temp_umrechnung(). Liefert der SHT nicht noch eine Prüfsumme die geprüft werden sollte? float Temp_umrechnung( unsigned int uiMesswert) { return( ( float)uiMesswert * 0.01f - 40.0f); }
-
Thread
Portierbarkeit von Sourcecode
meist in wesentlichen Teilen aus hardwareabhängigem Code. Da ist diese Stragie vertretbar. Ein 40KB Programm besteht grösstenteils aus Programmteilen, die bei sauberer Programmiertechnik kaum noch oder garnicht mehr von der verwendeten Hardware abhängen. So wird beispielsweise die unterste Ebene
eines AVR und eines ARM7 ziemlich gleich aussieht. Ähnliches gilt für die üblichen LCDs, DS18B20, SHT11 usw. Portierbarer Code erleichtert also die Übernahme solcher Codemodule erheblich. Man muss schon was ändern. Aber wenig und eng begrenzt.
-
Thread
Sensor für Feuchtigkeit
SHT11 bei www.csd-electronics.de
HIH3610 in meiner Wetterstation als Testsensor zum Vergleich im Betrieb. Die Messwerte sind sehr mit dem SHT15 und einem 4-20mA Shiney Industrie Sensor vergleichbar. Die Abweichungen zueinander liegen bei weniger als +/-5% ueber einen Temperaturbereich von +35 Grad bis -40 Grad C (Edmonton) http://www.phanderson.com
-
Thread
AVR Eclipse Plugin 2.3
oder sprintf Funktionen verwende, bekomme ich jetzt die folgenden Linker-Fehler: Building target: sht75b.elf Invoking: AVR C Linker avr-gcc -Wl,-Map,sht75b.map -Wl,-u,vfprintf -lprintf_flt -lm -L"C:\WinAVR\avr\lib" -mmcu=atmega644 -o"sht75b.elf" ./sht75.o ./sht75_main.o ./uart.o C:\WinAVR\avr
Bit) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00, 0x00,0x00,0x80,0x10,0x00,0x00,0x00,0x40,0x26,0x00,0xFF, 0xFF,0x3F,0x4F,0x80,0x00,0x00,0x80,0x5F,0x40,0x00,0xFE, 0xFF,0x5F,0x40,0x00,0xFE,0xFF,0x5F,0x82,0x00,0x00,0x80, 0x5F,0x00,0xFF,0xFF,0x3F,0x4F,0x0C,0x00,0x00,0x40,0x26, 0x12,0x41,0x10,0x84,0x10,0x12,0x41,0x10,0x04,0x0F
-
Thread
Verständnis zur Verwendung einer CRC Tabelle
0x7e, 0x20, 0xa3, 0xfd, 0x1f, 0x41 db 0x9d, 0xc3, 0x21, 0x7f, 0xfc, 0xa2, 0x40, 0x1e db 0x5f, 0x01, 0xe3, 0xbd, 0x3e, 0x60, 0x82, 0xdc db 0x23, 0x7d, 0x9f, 0xc1, 0x42, 0x1c, 0xfe, 0xa0 db 0xe1, 0xbf, 0x5d, 0x03,
eines binären Polynoms aufgebaut sind) Ich versuche das mal zu erklären (ich verwende das für den SHT-11 Sensor von Sensirion): 0. man hat eine Folge Bytes zu prüfen b1, b2, b3 usw 1. man nehme eine BYTE Variable byCRC, diese hat den Startwert 0 2. nun bildet man index = b1 XOR byCRC 3. und verwendet
-
Thread
AtMega8 - Funktioniert das so?
if(n>=4) PORTD |= 0x8; if(n>=5) PORTD |= 0x10; if(n>=6) PORTD |= 0x20; if(n>=7) PORTD |= 0x40; if(n>=8) PORTD |= 0x80; if(n>=9) PORTC |= 0x10; if(n>=10) PORTC |= 0x20; PORTB=LED; } void ActivateNext() { switch(PORTB) { case 0x40: case 0x00: Zeige(0x01,LFeuchte
Für Feuchtigkeits- und Temperatur messungen empfehle ich den Sensor SHT11 der Firmal Sensirion.
-
Thread
Feuchtesensor EFS10 Temperaturkompensation
Spontan wäre mir der KFS 33-LC von Hygrosens sympathisch. Das ist ein Kapazitiver Sensor der bis -40°C funktioniert. Der wäre auch vom Preis im Rahmen und ist leicht erhältlich. Ich muss nämlich auch ein bissle ökonomisch denken ;-) mfg Christoph
die vielleicht erwaenenswert ist: Da sich der Taupunkt errechnen laesst, koenntest Du ja einen SHT71/75 von Sensirion nehmen und den Taupunkt aus Temperatur und RH berechnen. Das duerfte ziemlich genau sein weil der SHT71 T und RH im selben Gehauese misst und das Temperaturgefaelle zwischen RH und
-
Thread
Temperaturmessung 0°-200°
200°C? PT100 / PT1000 oder Thermoelement. Halbleitersensoren, speziell digitale wie die SHT-Serie machen da nicht mehr mit. Obergrenze ist für Silizium ist 175°C, dann geht es definitiv kaputt. Komplexe Sensoren wie SHT und die DS18xx schon viel früher. Mein Rat: Beschäftige dich mit PT100
kaputt. Nicht unbedingt. Aus dem DB vom Silizium-Sensor KTY84: [pre] rated temperature range -40 to +300 °C [/pre]
-
Thread
AVR für wenig Geld im LAN
schon die Text-Felder enthalten, die die Schwellwerte per WebPage vorgeben!!! Der Anshluß von dem SHT an PORTD hat geklappt, muuste dazu nur in der config.h folgende Zeilen ändern: [c] #define SHT_SCK_PORT PORTD #define SHT_SCK_DDR DDRD #define SHT_SCK_PIN PD1 #define SHT_DATA_PORT PORTD #define SHT_DATA_DDR DDRD #define SHT_DATA_PORT_PIN PIND #define SHT_DATA_PIN PD2 [/c] Ansonsten ist mir noch aufgefallen, das die min und max Werte vom 1. Sensor schief laufen! Also ich hab den
-
Thread
MSP430 ADC10 mehrere Kanäle
Port 1 Pin 0-3 Input P3DIR |= 0x80; // Port 3 Pin 7 Output P3DIR &= ~0x40; // Port 3 Pin 6 Input P4DIR |= 0x18; // Port 4 Pin 4,3 Output P4DIR &= ~0x04; // Port 4 Pin 2 Input P1SEL &= ~0x0F;
// Endlosschleife [== while (1) ] { //unsigned int i; if (P3IN & 0x40) // Wenn Taster gedrückt ... { P3OUT &= ~0x80; // LED einschalten } else { P3OUT |= 0x80; // LED ausschalten
-
Thread
Taupunkt / Schimmel-Alarm / Lüftungshelfer
So etwas wird von ELV angeboten (deren Eigenentwicklung, SHT11-basiert, interner und externer Sensor mit kleinem Display und akustischem Alarm). Hier: http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=12312
@Whitespace: Danke, hatte einen Dreher in größer und kleiner drinnen. @Mattias M. @oszi40 So läuft es zur Zeit - nur der Geist ist manchmal schwach und wir vergessen am Morgen die Fenster zu Schließen oder sind nicht zu Hause, um sie zu Öffnen. Peter
-
Thread
MMC SD library FAT16 FAT32 read write
Logdaten auf MMC Karte schreiben Dateiname; z.B: "Jan12.csv" Sht1 01. 20:15:30Uhr 31,13°C 56,08% Sht2 01. 20:15:30Uhr 30,14°C 55,45% Sht3 01. 20:15:30Uhr 00,00°C 00,00% Sht4 01. 20:15:30Uhr 00,00°C 00,00% **************************************************************************************/ void sht_write_log() { char zahl_str[4]; uint8_t zahl_speicher; // Wert aus der laufenden Zeit entnehmen damit sich der Rechenwert nicht während der Verarbeitung ändert char datenreihe[40];
-
Thread
Temperaturüberwachung mit NTC
GND pin (Dide in Durchgangsrichtung). Mit 2.5V VREF kann man bequem den Temperaturbereich von unter -40 bis knapp +100 Grad messen. In der Firmware ziehe ich dann die GND Pin Offset einfach ab. Das Ganze hat den Vorteil dass man keinen Op-Amp benoetigt. Das Infrarotthermometer gab es bei uns fuer ca
verwendet. Der Dallas DS18B20 ist auch ganz praktisch. In meiner Wetterstation verwende ich den SHT75 Temperatur/Feuchtigkeitssensor mit einem I2C aehnlichem Interface. Das Infrarotthermometer kannst Du hier ansehen: http://www.weisd.com/store2/TPI368.html Bin sehr zufrieden damit. NTC
-
Thread
FOST02 - Feuchtigkeit immer bei 0.1
while(1) { error=0; error+=sht_measure( &humi_val,&checksum,HUMI); //measure humidity error+=sht_measure( &temp_val,&checksum,TEMP); //measure temperature if(error!=0) sht_connectionreset();
Code für SHT11, der deutlich besser aussieht und eine recht pfiffige Umrechnung enthält, findet sich in http://www.mikrocontroller.net/topic/8507. Anbei mein SHT11/FOST02-Codemodul. Kann in beiden Auflösungsmodi
-
Thread
[V] FOST02 Temperatur/Feuchtesensor
liegt bei 4,00 EUR incl. MwSt. und Zoll. Die Versondkosten zu Euch sind 1,65 EUR unversichert, oder 2,40 EUR versichert im Polsterbrief. Die Lieferzeit liegt bei 2 bis 3 Wochen. Der FOST02 ist mit dem SHT10 kompatibel kann aber nur 8Bit/12Bit. Datenblatt: http://profmason.com/wp-content/uploads/2007
-
Thread
LCD Anzeige für SHT11
tut man ja nun so: 17 b3 hex=6067dez also temperatur=6067*0.01 - 40=20,67 °C so weit so gut. nur wie bringe ich das meinem atmega bei und das auch noch in assembler? gutes zureden hat leider nix geholfen ;-) oder ist das einfach zu aufwändig und ich sollte damit
Compiler artet solche Rechnerei etwas in Arbeit aus, vor allem wenn du auch noch die Nichtlinearität des SHT11 korrigieren willst. Routinen für Arithmetik in Assembler lassen sich bei Atmel als Application Note finden.
-
Thread
Benötigt der i2c-Bus einen Pull-UP
schnell kommunizieren muss reicht das. Sagen wir mal 20pF Leitungskapazität +2x10pF für die ICs, macht 40pF. Mit 100k ergibt das 4µs Zeitkonstante und ~8us Anstiegszeit. Damit macht man noch locker 30kHz. MfG Falk
Ich habe meine SHT11 immer mit 10k hochgezogen. Laufen wunderbar.
-
Thread
Batterieversorgung auch bei Kälte?
das das Labornetzteil auch die Stromaufnahme anzeigt. Meine Schaltung braucht relativ konstant 40 mA - wie lang hällt da ein 9V Block? Wieviel mAh hat der? (Alkaline) Gruß Stomper
die Kapazität normaler Batteriern MASSIV in den Keller. >Meine Schaltung braucht relativ konstant 40 mA - wie lang hällt da ein >9V Block? Wieviel mAh hat der? (Alkaline) Siehe Link oben. Und wie bereits gesagt, 40mA sind viel zuviel für so eine Anwendung. [[Ultra low power]] [[Sleep Mode]]
-
Thread
RFM12: Erfahrungen
Controller kann dabei im absoluten Tiefschschlaf und ohne Takt sein und verbraucht dann so um die 40µA bei 5V. Das Modul schaltest Du vorher aus und beim Aufwachen nur dann an, wenn Du´s wirklich brauchst. Was hast Du denn an Strom gemessen?
zum thema stromverbrauch: ich betreib hier seit einem 3/4 jahr einen sensor mit einem tiny45, einem SHT11 temperatur/feuchtesensor und einem simplen 868MHz-sendemodul (rf-solutions?) an 2xAA alkaline. jedenfalls hab ich ursprünglich ausgerechnet, daß das ca. 9 monate aushalten wird, wie die grafik
-
Thread
Webserver ATmega32/644DIP ENC28J60
So jetzt habe ich die tuxgraphics.org Software drauf und man sieht die Daten des SHT11 Sensors ;)
Hallo, So die neue Software V1.0.40 ist online. Gruß Ulrich
-
Thread
Erfahrung bei Entscheidung für Temperatursensoren
Mein bisheriger Favorit für die kombinierte Temp. und Feuchtigkeitsmessung waren die Sensirion Teile (SHT11, ...) aber im Datenblatt hab ich gesehen, dass diese nicht adressierbar sind - also eigentlich pro Sensor zwei Pins benötigen, was bei vielen Sensoren nicht besonders gut ist. mit besten Grüßen
Luftfeuchte/temperatur: Sensirion, falls kalibriert wird (Fehler ist nur von ca. 0 °C - 40 °C kleiner gleich 0.5 °C), mit Ausnahme von Hygrometrix ist der Rest der brauchbaren Sensoren analog. Für den Motor würde ich aufgrund des deutlich besseren Ansprechverhaltens gegenüber den digitalen
-
Thread
Was macht bitte der GCC da?? Compilerbug?
komma = tem[1]; } [/c] Nun hab ich mehr. Was macht der Compiler da?? [avrasm] 246:sht1c.c **** void sht_raw_to_physical(sht_val *temp, sht_val *hum) 247:sht1c.c **** { 750 mov r15,r24 751 ldi r18,lo8(0) 752 ldi
760 01e6 9F40 ldi r24,lo8(5) 761 01e8 9183 .L46: 762 01ea 8083 rcall sht_write_byte 250:sht1c.c **** tem[0] = temp->_int / 100; //ganz 251:sht1c.c **** tem[1] = temp
-
Thread
Laserentfernungsmessung mit TDC
TTL/CMOS fähigen Ausgang und eine Rise TImer von ein paar ns. Der Chip von Analog schafft sogar ca 40 ps aber hat einen noch "schwächeren" Output. Nur das hilft alles nichts, da die ICs bei weitem nicht die Power haben, eine Pulse-Laser Diode zu speisen. Und sobald ich eine Leistungsstufe dem Oszillatorausgang
Dort gibt es welche mit sehr hoher Sensitivitaet von bis zu 3nW (http://www.analogmodules.com/Data_sht/758a.pdf). Die Dinger haben sogar ein Peltier-Element zur Erzeugung einer gleichbleibenden Temperatur integriert. Allerdings werden die Dinger nicht billig sein.
-
Thread
Sammelbestellung RFM12
wird bald wieder ne Sammelbestellung aufgegeben? Ich bräuche so ca. 30-40 Stück!
//www.ebay.de/sch/i.html?_trksid=p2050601.m570.l1313.TR0.TRC0.H0.Xrfm12&_nkw=rfm12&_sacat=0&_from=R40
-
Thread
SHTxx + ATmega16 + TWI
void SHT7Reset(void) { } unsigned char SHT7Read(unsigned char SHTACK) { unsigned char i, tempvalue=0; S_SDA(); //release DATA-line for (i=0x80;i>0;i/=2) //shift
//clk #9 for ack error=G_SDA(); //check ack (DATA will be pulled down by SHT11) C_SCL(); return error; //error=1 in case of no acknowledge }
-
Thread
Komplizierte Berechnung mit PIC durchführen
Hallo, ich möchte gerne an meinen PIC einen Luftfeuchte- und Temperatursensor (Sensirion SHT11) anschließen, das wäre soweit kein Problem. Nur man muss die Daten vom Sensor noch umrechnen und weiß überhaupt nicht, wie ich das machen sollte. Zuerst die Temperatur: Temperatur=(-40)+0,01*SO
SO - 40000 ) / 10000 Das könnte jetzt aber ein Problem mit dem Zahlenbereich geben. Was ist mit 40? 40 / 0.0405 ergibt 987.6 987.6 * 4 ergibt 3950.6 RH(lin) = ( 40 * SO - 3950.6 ) / 987.6 Der Trick besteht also darin, die 0.0405 in einen Bruch mit möglichst ganzzahligen Werten zu zerlegen
-
Thread
NF Übertrager selber wickeln ?
oszi40 schrieb im Beitrag #6558699: > Pille schrieb: >> dass die Kerngröße auch den vorhandenen Wickelraum beeinflusst > > Die Erkenntnis hat sich seit TO 2006 nicht geändert. Oft reicht der > Platz nicht
alte Suchgeräte geöffnet und die haben alle aus diesem Grund einen Ausgangsübertrager drin. Im Anhang sht ihr mal die unvollständige Schaltung eines alten Kabelsuchsenders. Daher habe ich meine Frage recht einfach gestellt, ob solch ein minderwertiger Übertrager nicht auch mit Ferritkern zu realisieren