Lieber Besucher, herzlich willkommen bei: We-Mod-It | Das Forum von Moddern für Modder. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.
Benutzerinformationen überspringen
1. Platz Enermax Casecon Contest
Registrierungsdatum: 12. März 2012
Wohnort: München
Beruf: Maschinenbautechniker
Dieser Beitrag wurde bereits 21 mal editiert, zuletzt von »Scynd« (12. März 2015, 12:34)
Benutzer, die sich für diesen Beitrag bedankt haben:
der_george (22.02.2015), Socke (23.02.2015), lister (09.04.2018)
Benutzerinformationen überspringen
1. Platz Enermax Casecon Contest
Registrierungsdatum: 12. März 2012
Wohnort: München
Beruf: Maschinenbautechniker
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
// Konstanten const long interval = 1000; // Interval wie oft die Temperatur abgefragt wird (milliseunden) const int abfrageZahl = 5; // Je mehr abfragen, desto stabiler isr das Ergebnis, dauert aber länger const int ntc = A0; // Pin für den 10kO NTC Wiederstand const int ntcNominal = 10000; // Wiederstand des NTC bei Nominaltemperatur const int tempNominal = 25; // Temperatur bei der der NTC den angegebenen Wiederstand hat const int bCoefficient = 3977; // Beta Coefficient(B25 aus Datenblatt des NTC) const int serienWiederstand = 10000; // Wert des Wiederstands der mit dem NTC in Serie geschalten ist // Variablen int abfrage[abfrageZahl]; // Array Variable für das Mitteln der Temperatur float durchschnitt = 0; // Variable für das Mitteln der Temperatur float temp; // Variable für die Berechnung der temperatur nach Steinhart unsigned long letzteMillis = 0; // Speichert die letzte Zeit (millis) der Temperaturabfrage void setup() { Serial.begin(9600); // Baudrate für die Ausgabe am Serial Monitor pinMode(ntc, INPUT); // Setzt den Pin des NTC Wiederstands als Eingang } void loop() { // Erfasst die aktuelle Zeit für den Abfrageinterval unsigned long aktuelleMillis = millis(); // Löst bei erreichen der Intervalzeit die Temperaturberechnung aus if(aktuelleMillis - letzteMillis >= interval) { letzteMillis = aktuelleMillis; // speichert die Zeit der letzten Abfrage Temperaturberechnung(); // Startet die Temperaturerfassungsroutine // Ausgabe an den Seriellen Monitor Serial.print("Temperatur "); Serial.print(temp); Serial.println(" *C"); } } void Temperaturberechnung() { // Nimmt N Abfragen in einer Reihe, mit einem kurzen delay for (int i=0; i < abfrageZahl; i++) { abfrage[i] = analogRead(ntc); delay(10); } // Mittelt alle Abfragen durchschnitt = 0; for (int i=0; i < abfrageZahl; i++) { durchschnitt += abfrage[i]; } durchschnitt /= abfrageZahl; // Umwandlung des Wertes in Wiederstand durchschnitt = 1023 / durchschnitt - 1; durchschnitt = serienWiederstand / durchschnitt; // Umrechnung aller Ergebnisse in die Temperatur mittels einer Steinhard Berechnung temp = durchschnitt / ntcNominal; // (R/Ro) temp = log(temp); // ln(R/Ro) temp /= bCoefficient; // 1/B * ln(R/Ro) temp += 1.0 / (tempNominal + 273.15); // + (1/To) temp = 1.0 / temp; // Invertieren temp -= 273.15; // Umwandeln in °C } |
Dieser Beitrag wurde bereits 31 mal editiert, zuletzt von »Scynd« (22. Februar 2015, 20:48)
Benutzerinformationen überspringen
1. Platz Enermax Casecon Contest
Registrierungsdatum: 12. März 2012
Wohnort: München
Beruf: Maschinenbautechniker
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
#include <OneWire.h> // OneWire-Bibliothek einbinden #include <DallasTemperature.h> // DS18B20-Bibliothek einbinden // Konstanten const int owPin = 2; // Pin für OneWire Bus definieren const int interval = 1000; // Interval wie oft die Temperatur abgefragt wird (milliseunden) // Variablen unsigned long letzteMillis = 0; // Speichert die letzte Zeit (millis) der Temperaturabfrage OneWire oneWire(owPin); // OneWire Referenz setzen DallasTemperature sensors(&oneWire); // DS18B20 initialisieren void setup() { Serial.begin(9600); // Baudrate für die Ausgabe am Serial Monitor sensors.begin(); // DS18B20 starten //Anzahl der angeschlossenen Sensoren ausgeben Serial.print("Sensoren: "); Serial.println(sensors.getDeviceCount()); } void loop() { // Erfasst die aktuelle Zeit für den Abfrageinterval unsigned long aktuelleMillis = millis(); // Löst bei erreichen der Intervalzeit die Temperaturerfassung aus if(aktuelleMillis - letzteMillis >= interval) { letzteMillis = aktuelleMillis; // speichert die Zeit der letzten Abfrage sensors.requestTemperatures(); // Temperatursensoren auslesen // Temperaturen der Sensoren auslesen for(int i = 0; i < sensors.getDeviceCount(); i++) { show_temperature(i + 1, sensors.getTempCByIndex(i)); } } } // Temperatur am Seriellen Monitor ausgeben void show_temperature(byte num,float temp) { Serial.print("Sensor "); Serial.print(num); Serial.print(": "); Serial.print(temp); Serial.print(" "); Serial.write(176); // damit wird das °-Zeichen dargestellt Serial.println("C"); } |
Dieser Beitrag wurde bereits 22 mal editiert, zuletzt von »Scynd« (22. Februar 2015, 15:31)
Benutzerinformationen überspringen
1. Platz Enermax Casecon Contest
Registrierungsdatum: 12. März 2012
Wohnort: München
Beruf: Maschinenbautechniker
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
// Konstanten const int abfrageZahl = 5; // Je mehr abfragen, desto stabiler isr das Ergebnis const int ldr = A0; // Pin für den Fotowiederstand // Variablen int helligkeit = 0; // Variable für die Helligkeit int abfrage[abfrageZahl]; // Array Variable für das Mitteln der Temperatur float durchschnitt = 0; // Variable für das Mitteln der Temperatur void setup() { Serial.begin(9600); // Baudrate für die Ausgabe am Serial Monitor pinMode(ldr, INPUT); // Pin des NTC Wiederstands als Eingang } void loop() { // Nimmt N Abfragen in einer Reihe, mit einem kurzen delay for (int i=0; i < abfrageZahl; i++) { abfrage[i] = analogRead(ldr); delay(10); } // Mittelt alle Abfragen durchschnitt = 0; for (int i=0; i < abfrageZahl; i++) { durchschnitt += abfrage[i]; } helligkeit = durchschnitt/abfrageZahl; // Ausgabe an den Seriellen Monitor Serial.print("LDR "); Serial.println(helligkeit); } |
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
// Konstanten const int abfrageZahl = 5; // Je mehr abfragen, desto stabiler isr das Ergebnis const int ldr = A0; // Pin für den Fotowiederstand const int led = 2; // Variablen int helligkeit = 0; // Variable für die Helligkeit int abfrage[abfrageZahl]; // Array Variable für das Mitteln der Temperatur float durchschnitt = 0; // Variable für das Mitteln der Temperatur void setup() { Serial.begin(9600); // Baudrate für die Ausgabe am Serial Monitor pinMode(ldr, INPUT); // Pin des NTC Wiederstands als Eingang pinMode(led, OUTPUT); } void loop() { // Nimmt N Abfragen in einer Reihe, mit einem kurzen delay for (int i=0; i < abfrageZahl; i++) { abfrage[i] = analogRead(ldr); delay(10); } // Mittelt alle Abfragen durchschnitt = 0; for (int i=0; i < abfrageZahl; i++) { durchschnitt += abfrage[i]; } helligkeit = durchschnitt/abfrageZahl; // Ausgabe an den Seriellen Monitor Serial.print("LDR "); Serial.println(helligkeit); // Schalte bei Dunkelheit die LED an if(helligkeit > 950) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } } |
Dieser Beitrag wurde bereits 22 mal editiert, zuletzt von »Scynd« (22. Februar 2015, 20:58)
Benutzerinformationen überspringen
1. Platz Enermax Casecon Contest
Registrierungsdatum: 12. März 2012
Wohnort: München
Beruf: Maschinenbautechniker
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
// Konstanten const int empfPin = 2; // Pin des Empfängers const int ledPin = 13; // LED auf dem Arduino initialisieren // Variablen int signal = 0; void setup() { pinMode(empfPin, INPUT); // Pin des Senders als Eingang pinMode(ledPin, OUTPUT); // Pin der LED als Ausgang } void loop() { // Lichtschrankenstatus in Variable speichern signal = digitalRead(empfPin); // Wenn Lichtschranke unterbrochen wird, geht die LED an if(signal == HIGH) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } } |
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
// Konstanten const int empfPin = A1; // Pin des Empfängers const int ledPin = 13; // LED auf dem Arduino initialisieren // Variablen int signal = 0; void setup() { Serial.begin(9600); // Baudrate für die Ausgabe am Serial Monitor pinMode(empfPin, INPUT); // Pin des Senders als Eingang pinMode(ledPin, OUTPUT); // Pin der LED als Ausgang } void loop() { // Lichtschrankenstatus in Variable speichern signal = analogRead(empfPin); // Wenn Lichtschranke unterbrochen wird, geht die LED an if(signal > 900) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } // Zur Kontrolle an den Seriellen Monitor senden Serial.println(signal); } |
Dieser Beitrag wurde bereits 14 mal editiert, zuletzt von »Scynd« (12. März 2015, 12:47)
Benutzerinformationen überspringen
1. Platz Enermax Casecon Contest
Registrierungsdatum: 12. März 2012
Wohnort: München
Beruf: Maschinenbautechniker
Benutzerinformationen überspringen
"Mein Name ist George - Der George"
Registrierungsdatum: 17. März 2010
Wohnort: Da wo der Berch wohnt
Beruf: Inginöööör und Freundinbeschäftiger
Benutzerinformationen überspringen
1. Platz Enermax Casecon Contest
Registrierungsdatum: 12. März 2012
Wohnort: München
Beruf: Maschinenbautechniker
Benutzerinformationen überspringen
"Mein Name ist George - Der George"
Registrierungsdatum: 17. März 2010
Wohnort: Da wo der Berch wohnt
Beruf: Inginöööör und Freundinbeschäftiger
Benutzerinformationen überspringen
1. Platz Enermax Casecon Contest
Registrierungsdatum: 12. März 2012
Wohnort: München
Beruf: Maschinenbautechniker
Benutzerinformationen überspringen
Neu Hier!
Registrierungsdatum: 1. November 2014
Name: Jonathan
Wohnort: in der Nähe von Stuttgart
Benutzerinformationen überspringen
1. Platz Enermax Casecon Contest
Registrierungsdatum: 12. März 2012
Wohnort: München
Beruf: Maschinenbautechniker
Benutzerinformationen überspringen
Neu Hier!
Registrierungsdatum: 1. November 2014
Name: Jonathan
Wohnort: in der Nähe von Stuttgart
Benutzerinformationen überspringen
1. Platz Enermax Casecon Contest
Registrierungsdatum: 12. März 2012
Wohnort: München
Beruf: Maschinenbautechniker
Benutzerinformationen überspringen
Neu Hier!
Registrierungsdatum: 1. November 2014
Name: Jonathan
Wohnort: in der Nähe von Stuttgart
Benutzerinformationen überspringen
1. Platz Enermax Casecon Contest
Registrierungsdatum: 12. März 2012
Wohnort: München
Beruf: Maschinenbautechniker
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
if (temp >= 60 && temp < 70) { // Ausgabe für 10er Stelle digitalWrite(A, LOW); digitalWrite(B, HIGH); digitalWrite(C, HIGH); digitalWrite(D, LOW); // Ausgabe 1er Stelle temp = temp - 60; // Dann bleibt nur die 1er Stelle, also 8 übrig sitch (temp) { case 0: { digitalWrite(A, LOW); digitalWrite(B, LOW); digitalWrite(C, LOW); digitalWrite(D, LOW); break; } case 1: { digitalWrite(A, HIGH); digitalWrite(B, LOW); digitalWrite(C, LOW); digitalWrite(D, LOW); break; } case 2: { digitalWrite(A, LOW); digitalWrite(B, HIGH); digitalWrite(C, LOW); digitalWrite(D, LOW); break; } usw....... |
Benutzer, die sich für diesen Beitrag bedankt haben:
Flexplays (02.04.2017)
Benutzerinformationen überspringen
Neu Hier!
Registrierungsdatum: 1. November 2014
Name: Jonathan
Wohnort: in der Nähe von Stuttgart
Benutzerinformationen überspringen
1. Platz Enermax Casecon Contest
Registrierungsdatum: 12. März 2012
Wohnort: München
Beruf: Maschinenbautechniker
Arduino, DS18B20, Lichtschranke, NTC, Photowiederstand, Temic K153P, Temperaturmessung, Thermistor, Tutorial
© 2011-2014 We-Mod-It.com | Das Forum von Moddern für Modder | © Design by Jama
Forensoftware: Burning Board® 3.1.8, entwickelt von WoltLab® GmbH