Infos

• Neue Mitglieder dürfen sich hier vorstellen :)
• Letzte Beiträge
• Mythos Nikotin- Prof. Dr. Mayer
• Flohmarkt (ab 18)
• Dampfer Tagebücher
• Fakten/Studien/Statistiken
Mitglieder Bewertungen
• Shop Bewertungen
• Geräte Bewertungen
• Liquid Bewertungen
• Aromen Bewertungen
Dampfertreffen und Stammtische (forenübergreifend): Bitte Termine für 2020 im Kalender eintragen!
(Übersicht aus aktuellen Gründen deaktiviert).

X

Teil 1 - Grundgedanken zur Steuerung

#1 von dustpuppy , 12.10.2013 00:25

Es geht los

Ich gehe mal davon aus, dass Jeder weiss, wie eine E-Zigarette funzt. Strom wird durch einen Widerstandsdraht geleitet, worauf dieser heiss wird und aufgebrachtes Liquid verdampft. Das war's eigentlich.

Ich werde auch nicht auf die Erklaerung einzelnder Begriffe aus der Elektronik oder Programierung eingehen, da das den Rahmen sprengen wuerde und ausserdem sollte Niemand, der sich damit nicht auskennt direkt mit so einer Steuerung anfangen.

Ich habe einen Arduino als Steuerung ausgewahlt, da diese einfach zu beschaffen sind, nicht viel kosten und einfach zu programieren sind. Der Arduino hat mehrere Ports, die eine PWM ausgeben koennen. Leider darf ein Port nur mit maximal 40mA belastet werden, was den Verdampfer nicht mal zum lachen bringen wuerde. Eine einfache Moeglichkeit ist es die PWM zu nutzen um einen Mosfet damit anzusteuern, der dann die entprechende Leistung von der Stromquelle zum Verdampfer bringt. Desweitern brauchen wir noch einen Taster, der ueber einen Port ein digitales Signal an den Arduino gibt, damit wir "feuern" koennen. Im Prinzip wuerde das schon reichen, aber ich habe der Vollstaendigkeit halber 2 weite Taster eingefuegt in dem ersten Schaltplan, damit man die PWM auch regeln kann.
Hier also der einfache, erste Schaltplan.
V+ sind mindestens 7 Volt, sonst tut der Arduino nix.



Die erste Software kommt dann Morgen dran, weil ich Heute keinen Bock mehr hab.


dustpuppy  
dustpuppy

Modder
Beiträge: 16
Registriert am: 16.08.2013

zuletzt bearbeitet 12.10.2013 | Top

RE: Teil 1 - Grundgedanken zur Steuerung

#2 von guzzguzz , 12.10.2013 00:50

Um die Uhrzeit hätte ich auch keinen Bock mehr...
Dranbleiben an der Geschichte )
Ich will das Teil nachbauen...
Da ich eh fast alles notwendige Arduino-, Atmel- und sonstiges Elektronikmaterial zu beruflichen und privaten Bastelzwecken zuhause hab, bietet sich das an.
LG aus der Schweiz


Itaste SVD und Vamo V2 mit Protank (Menthol) sowie Iclear 30 für anderes, Lavatube 4 mit Irony ESS SW. Protank Mini und Smok Dualcoil XXXl Carto mit EGO Twist und L-Rider Robust als unauffällige Bürodampfe :-D


 
guzzguzz
Beiträge: 94
Registriert am: 13.09.2013


RE: Teil 1 - Grundgedanken zur Steuerung

#3 von Pillepalle , 12.10.2013 01:21

Hmm, ist der Schaltplan schon fertig, bzw. was soll die Steuerung denn mal tun ?
Weil .. bis jetzt könnt man das auch mit nem 1€-ATiny13 (o.ä.) in einem 8poligem DIL-Gehäuse
erledigen. OK, nur um´s PWM müsste man sich dann selber kümmern/programmieren.


 
Pillepalle
Beiträge: 513
Registriert am: 09.05.2012


RE: Teil 1 - Grundgedanken zur Steuerung

#4 von dustpuppy , 12.10.2013 02:11

Das ist erst der erste Teil. Ich wollte als naechstes drauf eingehen, wie man das schon mal nutzen kann um die PWM zu regeln und so den Verdampfer zum verdampfen zu bringen. Danach kommt der naechste Teil, der zum messen der Batteriespannung ist und somit eine gezielte Regelung moeglich macht. Dann kommt die Ohmmessung dran, danach das Display, und so weiter. Was bringt es, wenn ich den kompletten Schaltplan auf einmal einstell und keiner mehr durchblickt, welcher Teil der Schaltung was macht? Also lieber Schritt fuer Schritt.


micha, 2erlei, Sandro und Pillepalle haben sich bedankt!
dustpuppy  
dustpuppy

Modder
Beiträge: 16
Registriert am: 16.08.2013


RE: Teil 1 - Grundgedanken zur Steuerung

#5 von dustpuppy , 14.10.2013 03:57

Auf geht's. Wir machen das erste Mal Dampf.
Ist gar nicht so schwer. Ich werde jetzt aber nicht erklaeren, wie man die Arduino-Software installiert, oder wie man in C/C++ programiert. Tante Google hilft da weiter.

Hier ist also der erste kleine Code, der uns erlaubt den Wert der Ausgabe zu regulieren und den Verdampfer per PWM anzusteuern mit diesem Wert. Das kleine Program hat keine Sicherheitseinstellungen und ist extra primitiv gehalten, damit Jeder mitkommen kann. Mit der Zeit wird dann komplizierter und weiter ausgebaut. Aber im Moment wollen wir ja nur ein Ergebniss sehen.

OK, hier is er:

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
 

// Festgelegte Werte fuer die Ports
const int fireButtonPin = 4;
const int plusButtonPin = 5;
const int minusButtonPin = 6;
const int atomizerOutputPin = 3;
 
// Variable Werte
int outputMin = 0;
int outputMax = 255;
int outputCurrent = 0;
 
// Alles Vorbereiten
void setup() {
// Modes fuer alle Ports festlegen
pinMode(fireButtonPin, INPUT);
pinMode(plusButtonPin, INPUT);
pinMode(minusButtonPin, INPUT);
pinMode(atomizerOutputPin, OUTPUT);

// Interne Pullups der Taster-Ports einschalten
// Taster sind LOW wenn gedrueckt
digitalWrite(fireButtonPin, HIGH);
digitalWrite(plusButtonPin, HIGH);
digitalWrite(minusButtonPin, HIGH);
 
}
 
// Die Hauptschleife
void loop() {
// Status des Feuerknopf lesen
if (digitalRead(fireButtonPin) == LOW)
{
// Ausgabewert an Aomizerpin ausgeben
analogWrite(atomizerOutputPin, outputCurrent);
}
else
{
// Atomizerpin auf 0 setzen
analogWrite(atomizerOutputPin, 0);
}

// Status des Plusknopf lesen
if (digitalRead(plusButtonPin) == LOW)
{
// Wenn Ausgabewert unterhalb des maximalen Wertes liegt
if(outputCurrent < outputMax)
{
// Ausgabewert erhoehen
outputCurrent++;
}
}

// Status des Minusknopf lesen
if (digitalRead(minusButtonPin) == LOW)
{
// Wenn Ausgabewert ueber minimalem Wert liegt
if(outputCurrent > outputMin)
{
// Ausgabewert verringern
outputCurrent--;
}
}
}
 

 



Nu gehen wir mal kurz durch.

Zuerst legen wir fest, an welchem Ausgang was angeschlossen ist, damit wir mit realen Namen arbeiten koennen, anstatt mit unuebersichtlichen Zahlen. Die Nummern sind also die Ports an denen unsere Taster und der Mosfet angeschlossen sind.

1
2
3
4
5
6
7
 

// Festgelegte Werte fuer die Ports
const int fireButtonPin = 4;
const int plusButtonPin = 5;
const int minusButtonPin = 6;
const int atomizerOutputPin = 3;
 
 



Jetzt brauchen wir noch ein paar Variablen, die wir waehrend der Laufzeit unseres Programs veraendern. Auch hier gibt's wieder Namen, die selbsterklaerend sind, weil's spaeter, wenn der Code laenger wird, einfacher ist den Ueberblick zu behalten.

Der minimale Ausgabewert fuer die PWM liegt erstmal bei 0.

1
2
3
 

int outputMin = 0;
 
 



Der Maximale Wert liegt bei Allem, was der Akku hergibt. Achtung, da wir mindestens 7 Volt brauchen, also 2 Akkus verwenden, sollte man nicht bis zum Anschlag hoch gehen, sonst glueht der Verdampfer mal kurz auf und das war's dann.

1
2
3
 

int outputMax = 255;
 
 



Den aktuellen Ausgabewert veraendern wir im laufenden Program, setzen ihn aber erstmal aufs Minimum.

1
2
3
 

int outputCurrent = 0;
 
 



In der Setup-Funktion muessen wir jetzt alle Tasterports auf Eingang und den Verdampferport auf Ausgang setzten. Da die Taster auf Ground schalten muessen wir die internen Pullup-Widerstaende der Eingaenge auf HIGH schalten.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 

// Alles Vorbereiten
void setup() {
// Modes fuer alle Ports festlegen
pinMode(fireButtonPin, INPUT);
pinMode(plusButtonPin, INPUT);
pinMode(minusButtonPin, INPUT);
pinMode(atomizerOutputPin, OUTPUT);

// Interne Pullups der Taster-Ports einschalten
// Taster sind LOW wenn gedrueckt
digitalWrite(fireButtonPin, HIGH);
digitalWrite(plusButtonPin, HIGH);
digitalWrite(minusButtonPin, HIGH);
 
}
 
 



Jetzt geht's endlich los, wir tun was mehr oder weniger Sinnvolles. Die loop-Funktion wird ab jetzt immer und immer wieder durchlaufen. Sie sollte sich mit den Bemerkungen im Code selbst erklaeren. Es lohnt auch nicht auf jeden Punkt einzugehen, da dieser Teil sich massiv aendern wird im laufe der Zeit.

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
 

// Die Hauptschleife
void loop() {
// Status des Feuerknopf lesen
if (digitalRead(fireButtonPin) == LOW)
{
// Ausgabewert an Aomizerpin ausgeben
analogWrite(atomizerOutputPin, outputCurrent);
}
else
{
// Atomizerpin auf 0 setzen
analogWrite(atomizerOutputPin, 0);
}

// Status des Plusknopf lesen
if (digitalRead(plusButtonPin) == LOW)
{
// Wenn Ausgabewert unterhalb des maximalen Wertes liegt
if(outputCurrent < outputMax)
{
// Ausgabewert erhoehen
outputCurrent++;
}
}

// Status des Minusknopf lesen
if (digitalRead(minusButtonPin) == LOW)
{
// Wenn Ausgabewert ueber minimalem Wert liegt
if(outputCurrent > outputMin)
{
// Ausgabewert verringern
outputCurrent--;
}
}
}
 
 



Kleine Anmerkung nochmal. Der Arduino braucht mindestens 7 Volt, damit der interne Spannungswandler auf dem Board das Baby ueberhaupt ans laufen bringt. Das heisst, es sind 2 Akkus Grundveraussetzung. Wenn man also den Ausgabewert der PWM bis zum Anschlag hoch regelt, dann kommen am Verdampfer mehr als 8 Volt bei 2 vollgeladenen Akkus an. Wer sich seinen Verdampfer damit grillt, ist selber schuld.
Es waere also sinnvoll den Wert "outputMax" auf 127, also die Haelfte zu setzen. Dadurch kommen maximal 4 Volt an.

Beim naechsten Mal kommt dann der Schaltplan mit dem Teil, der die Batteriespannung misst und die Programierung wird etwas komplexer, indem die Ausgangsspannung berechnet wird und wir schon ein ganzes Stueck weiter kommen.

Spielt damit erstmal rum, oder wartet ab


dustpuppy  
dustpuppy

Modder
Beiträge: 16
Registriert am: 16.08.2013

zuletzt bearbeitet 14.10.2013 | Top

RE: Teil 1 - Grundgedanken zur Steuerung

#6 von Gartenjoe , 14.10.2013 09:07

Super erklärt. Der kleine Programmierkurs für Dampfer
Ich bin schon gespannt wie es weiter geht.


Stellt euch vor, ihr wärt eine Frau... oder vier Männer, is ja egal.


 
Gartenjoe
Beiträge: 2.642
Registriert am: 15.03.2012


RE: Teil 1 - Grundgedanken zur Steuerung

#7 von Supa_Strela , 14.10.2013 09:24

Beeindruckend aber ich versteh nur bin ja auch in solchen Dingen eher unbegabt aber für Leute die das verstehen sicher super


Fanclubresistent
Dampfen ist geil.....

Mein Avatar ist von dem Member Prof. Pinocchio & wurde von ihm für meinen privaten Gebrauch genehmigt!


 
Supa_Strela
Beiträge: 9.663
Registriert am: 25.03.2013

zuletzt bearbeitet 14.10.2013 | Top

   

Vorwort

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag



Auswahl Marktübersicht









e-Zigaretten & e-Liquids Foren-Übersicht









Legende:
* Bereiche: Area mit Händlerzugang
* gebuchte Backlinks

Administrator • Super-Moderator • Moderator • Buddy • Mitglieder • Modder • Mitglied/gesperrt für Flohmarkt • Newbie • Gesperrt/Gelöscht






Share |

Xobor Einfach ein eigenes Forum erstellen
Datenschutz