# Ohm Rechner in JavaScript aber was bedeutet Power?



## Xyz1 (30. Aug 2019)

Hallo, ich wollte einen Ohm Rechner in JS schreiben und so weit bin ich:

```
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Ohm Rechner</title>
</head>
<body>
    <fieldset>
        <h3>U = R*I</h3>
        <h3>Power = U*I</h3>
        <table>
            <tr>
                <td>Stromspannung U in Volt:</td>
                <td><input type="text" name="uinput"></td>
                <td><select name="uselect" size="5">
                        <option>Mega</option>
                        <option>Kilo</option>
                        <option selected>1</option>
                        <option>Milli</option>
                        <option>Mikro</option>
                    </select></td>
                </label>
            </tr>
            <tr>
                <td>Widerstand R in Ohm:</td>
                <td><input type="text" name="rinput"></td>
                <td><select name="rselect" size="5">
                        <option>Mega</option>
                        <option>Kilo</option>
                        <option selected>1</option>
                        <option>Milli</option>
                        <option>Mikro</option>
                    </select></td>
            </tr>
            <tr>
                <td>Stromstärke I in Ampere:</td>
                <td><input type="text" name="iinput"></td>
                <td><select name="iselect" size="5">
                        <option>Mega</option>
                        <option>Kilo</option>
                        <option selected>1</option>
                        <option>Milli</option>
                        <option>Mikro</option>
                    </select></td>
            </tr>
        </table>
        <button onclick="berechnen()">Berechnen</button>
    </fieldset>
    <fieldset>
        <table cellpadding="10">
            <thead>
                <tr>
                    <th>Einheit:</th>
                    <th>Mega</th>
                    <th>Kilo</th>
                    <th>1</th>
                    <th>Milli</th>
                    <th>Mikro</th>
                </tr>
            </thead>
            <tbody id="mybody"></tbody>
        </table>
    </fieldset>
    <script>
        function berechnen() {
            var u, r, i;
            u = parseFloat(document.getElementsByName("uinput")[0].value);
            r = parseFloat(document.getElementsByName("rinput")[0].value);
            i = parseFloat(document.getElementsByName("iinput")[0].value);
            if (!isNaN(u)) {
                u = getSi(document.getElementsByName("uselect")[0].value, u);
            }
            if (!isNaN(r)) {
                r = getSi(document.getElementsByName("rselect")[0].value, r);
            }
            if (!isNaN(i)) {
                i = getSi(document.getElementsByName("iselect")[0].value, i);
            }
            if (!isNaN(u) && !isNaN(r)) {
                i = u / r;
            } else if (!isNaN(u) && !isNaN(i)) {
                r = u / i;
            } else if (!isNaN(r) && !isNaN(i)) {
                u = r * i;
            }
            if (!isNaN(u) && !isNaN(r) && !isNaN(i)) {
                document.getElementById("mybody").appendChild(newRow("U", u));
                document.getElementById("mybody").appendChild(newRow("R", r));
                document.getElementById("mybody").appendChild(newRow("I", i));
                document.getElementById("mybody").appendChild(newRow("Power", u * i));
            }
        }
        function getSi(value1, value2) {
            switch (value1) {
                case "Mega":
                    return value2 * 1000000.0;
                case "Kilo":
                    return value2 * 1000.0;
                case "1":
                    return value2;
                case "Milli":
                    return value2 / 1000.0;
                case "Mikro":
                    return value2 / 1000000.0;
                default:
                    return null;
            }
        }
        function newRow(name, wert) {
            var tr = document.createElement("tr");
            var td1 = document.createElement("td");
            var td2 = document.createElement("td");
            var td3 = document.createElement("td");
            var td4 = document.createElement("td");
            var td5 = document.createElement("td");
            var td6 = document.createElement("td");
            td1.style = "text-align:center";
            td2.style = "text-align:right";
            td3.style = "text-align:right";
            td4.style = "text-align:right";
            td5.style = "text-align:right";
            td6.style = "text-align:right";
            td1.appendChild(document.createTextNode(name));
            td2.appendChild(document.createTextNode(wert / 1000000.0));
            td3.appendChild(document.createTextNode(wert / 1000.0));
            td4.appendChild(document.createTextNode(wert));
            td5.appendChild(document.createTextNode(wert * 1000.0));
            td6.appendChild(document.createTextNode(wert * 1000000.0));
            tr.appendChild(td1);
            tr.appendChild(td2);
            tr.appendChild(td3);
            tr.appendChild(td4);
            tr.appendChild(td5);
            tr.appendChild(td6);
            return tr;
        }
    </script>
</body>
</html>
```


Wenn man zB 12 Volt und 500 Mikroampere eingibt, berechnet es wohl richtig 24 kilo Ohm... Dabei ist Power P wohl 6 milli Watt.

Und jetzt zu meinen 2 Fragen: Was bedeutet hierbei Power P? Ist das Amperestunde oder wie übersetzt man es? Und wenn nur P und U oder nur P und I gegeben sind kann man daraus auch den Widerstand R berechnen? Wenn ja wieso? Ich weiß, das sind hauptsächlich Verständnisfragen.


----------



## mihe7 (30. Aug 2019)

Tobias-nrw hat gesagt.:


> oder wie übersetzt man es?


Leistung?

Im Gleichstrom: U=R*I, P = U*I = R*I*I


----------



## kneitzel (30. Aug 2019)

Also wenn ich Dich richtig verstehe geht es nicht um JavaScript sondern um Elektrotechnik...

Grundlagen der Elektrotechnik findet man an vielen Stellen im Netz. So auch unter https://www.gut-erklaert.de/physik/grundlagen-eletrotechnik.html 

Widerstand berechnen: Dies geht über das Ohmsche Gesetz. U = R * I
Also die Spannung ist gleich dem Widerstand mal dem Strom. Je nachdem was von den 3 Werten angegeben wurde, kann man die Formel umstellen. Also R = U / I und I = U / R

Power P = U * I  hat als Einheit Volt Ampere (VA) oder eben Watt. (Als SI Einheit wäre es kg * m^2 / (s^3). Übersetzen lässt sich dies als Elektrische Leistung.


----------



## kneitzel (30. Aug 2019)

Amperestunde hat damit nicht direkt etwas zu tun. Das würde der Ladung entsprechen, die in Coulomb (C) gemessen wird.
1 Ampere lässt sich also definieren über die Ladung, die in einer gewissen Zeit übertragen wird. 1 Ampere = 1 Coulomb / 1 Sekunde.

1 Ampere lässt sich aber auch über den Widerstand und die Spannung angeben. 1 Ampere fließt, wenn eine Spannung von 1 V and einem Widerstand von 1 Ohm hängt.


----------



## mihe7 (30. Aug 2019)

kneitzel hat gesagt.:


> Amperestunde hat damit nicht direkt etwas zu tun.


Amperestunde dürfte die elektrische Arbeit sein und Leistung ist bekanntermaßen Arbeit/Zeit


----------



## Xyz1 (30. Aug 2019)

kneitzel hat gesagt.:


> Grundlagen der Elektrotechnik findet man an vielen Stellen im Netz


OK, ich muss mir die Grundlagen durchlesen, denn es nützt nichts wenn ich das berechnen kann aber gar nicht genau weiß was ich da berechne. Wenn in einer Prüfung irgendetwas Komisches (also Weitergehendes...) abgefragt wird dann bin ich aufgeschmissen.

Danke euch.




mihe7 hat gesagt.:


> Amperestunde dürfte die elektrische Arbeit sein


Ist denn die elektrische Arbeit, welche ein Gerät (also Mikrocontroller...) in einer Stunde "verrichtet", nicht Amperestunde?


----------



## kneitzel (30. Aug 2019)

https://de.wikipedia.org/wiki/Amperestunde 

Also wenn ich diese ganz trivialen Dinge nicht mehr wissen würde, würde mein Physik LK Lehrer selbst nach all den Jahren (Abi 92) kommen und mir mein Abitur wegnehmen ...

Und das ist eben explizit NICHT die (elektrische) Leistung.

Die Leistung ergibt sich durch Ampere * Volt. Und 1 Volt ist etwas anderes als 1h ...


----------



## Xyz1 (30. Aug 2019)

kneitzel hat gesagt.:


> Also wenn ich diese ganz trivialen Dinge nicht mehr wissen würde



Bei mir ist das auch schon länger her.


----------



## mihe7 (30. Aug 2019)

Tobias-nrw hat gesagt.:


> Ist denn die elektrische Arbeit, welche ein Gerät (also Mikrocontroller...) in einer Stunde "verrichtetet", nicht Amperestunde?


Sorry, vertan: Amperestunde ist die Einheit der Ladung. Die elektrische Arbeit wäre die Energie (z. B. in Ws), so dass die Leistung Energie/Zeit wäre.


----------



## kneitzel (30. Aug 2019)

Ach ja - weil die Arbeit erwähnt wurde: Leistung über Zeit ist arbeit als z.B. Angabe in Wh.

Evtl. Vergleich mit dem Wasser im Staudamm:
Amperstunden wäre hier die Menge des Wassers im Staudamm. Was da aber für eine Energie drin steckt oder raus geholt werden kann, da nicht definiert. Da kommt dann halt die Höhe ins Spiel. Je größer die Höhe ist, die Du das Wasser fallen lassen kannst, desto mehr Energie ist da drin. Die Höhe wäre dann hier im Vergleich wohl die Spannung ...

Und dann können wir eine gewisse Leistung abgeben. Also Wenn das Wasser die höhe X fällt, dann können wir unten einen Generator laufen lassen oder die Energie abführen. Das ist dann eine Momentaufnahme. Das entspricht etwas der Leistung / Power hier. Erkennt man auch daran: Im Augenblick kommt da Wasser aus Höhe X an, da ist es egal, ob der Staudamm bald leer ist oder so. Ebenso beim Strom: Die Batterie ist irgendwann leer. Aber jetzt hat man Spannung x an Wiederstand y so dass ein Strom z fliesst.


----------



## Xyz1 (30. Aug 2019)

Ich wusste, es war ein Fehler, Physik i-wann abzuwählen, wenn man das später noch brauchen wird...

Vergleich mit dem Wasser im Staudamm: Ich weiß nicht, ob das möglich ist, weil das eigentlich potentielle Energie (Lage-/Höhenenergie) ist und dann später kinetische Energie (Joule) wäre...

Dafür kann ich Gedichte aus dem Mittelalter interpretieren  Wer kann das heute schon noch?


----------



## kneitzel (30. Aug 2019)

Also das Beispiel hinkt etwas. Aber ganz grob lässt sich das etwas vergleichen. Energie ist erst einmal Energie, egal in welcher Form. (Gibt da ja auch den Energie-Erhaltungssatz) Und die Einheit ist unter dem Strich immer gleich.

1 J = 1 Nm = 1 kg·m^2/s^2 = (kg * m^2 / (s^3) ) * s = 1 Ws

Also Energie / Arbeit ist halt Leistung über Zeit, Kraft über Strecke, .... Die Umrechnung in SI Einheiten hilft da teilweise ganz gut, auch wenn es natürlich von der Umrechnung immer wie zwei Dinge aussieht. Eine Kraft die eine Masse beschleunigt ist irgendwie etwas anderes als ein Strom, der durch einen Widerstand fließt.

Aber wenn das bei Dir nur die jeweils 1 Semester Physik und E-Technik Grundlagen-Vorlesungen sind: Die sollten auch so relativ wenig Probleme bereiten. Und je nach weiterem Studium wirst Du davon kaum noch etwas brauchen. Also kein Grund, sich verrückt zu machen. Und die zwei Scheine sollten doch mit etwas lernen zu schaffen sein ....


----------



## Xyz1 (30. Aug 2019)

Also sobald ich die richtige Einheit für Power P gefunden habe, werde ich das noch hinzufügen...


----------



## mihe7 (30. Aug 2019)

Tobias-nrw hat gesagt.:


> Also sobald ich die richtige Einheit für Power P gefunden habe, werde ich das noch hinzufügen...


Verstehe ich nicht: P = U * I, damit ist die Einheit Volt x Ampere und somit Watt.


----------



## kneitzel (30. Aug 2019)

Jo, oder wenn es in SI Einheiten sein soll, dann eben kg * m^2 / (s^3). Aber so lange man da keine Umrechnungsfehler einbaut, geht natürlich auch noch einiges andere also da wir oben hatten, dass 1J = 1 Nm = 1 Ws ist, könnte man auch Nm/s nehmen oder J/s oder oder ....

Aber in dem Zusammen am Anfang sollte man einfach bei W oder VA bleiben


----------



## temi (30. Aug 2019)

mihe7 hat gesagt.:


> Verstehe ich nicht: P = U * I, damit ist die Einheit Volt x Ampere und somit Watt.



P ist die Leistung bei Gleichstrom und die Einheit für die Leistung ist Watt.

Bei der Wechsel- oder Drehstromleistung gibt es noch zusätzlich zur Wirkleistung in Watt die Einheiten VA (für die Scheinleistung) und Var (für die Blindleistung, Var steht für VoltAmpere reaktiv).



mihe7 hat gesagt.:


> Die elektrische Arbeit wäre die Energie (z. B. in Ws), so dass die Leistung Energie/Zeit wäre.



Die elektrische Arbeit errechnet sich mit W = U * I * t oder W = P * t und die Einheit ist z.B. die vom Zähler im Keller wohlbekannte kWh.


----------



## Xyz1 (30. Aug 2019)

So das müsste jetzt hoffentlich passen:

```
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Ohm Rechner</title>
</head>

<body>
    <fieldset>
        <h3>U = R*I</h3>
        <h3>Power = U*I</h3>
        <table>
            <tr>
                <td>Stromspannung U in Volt:</td>
                <td><input type="text" name="uinput"></td>
                <td><select name="uselect" size="5">
                        <option>Mega</option>
                        <option>Kilo</option>
                        <option selected>1</option>
                        <option>Milli</option>
                        <option>Mikro</option>
                    </select></td>
                </label>
            </tr>
            <tr>
                <td>Widerstand R in Ohm:</td>
                <td><input type="text" name="rinput"></td>
                <td><select name="rselect" size="5">
                        <option>Mega</option>
                        <option>Kilo</option>
                        <option selected>1</option>
                        <option>Milli</option>
                        <option>Mikro</option>
                    </select></td>
            </tr>
            <tr>
                <td>Stromstärke I in Ampere:</td>
                <td><input type="text" name="iinput"></td>
                <td><select name="iselect" size="5">
                        <option>Mega</option>
                        <option>Kilo</option>
                        <option selected>1</option>
                        <option>Milli</option>
                        <option>Mikro</option>
                    </select></td>
            </tr>
            <tr>
                <td>Elektrische Leistung P in Watt:</td>
                <td><input type="text" name="pinput"></td>
                <td><select name="pselect" size="5">
                        <option>Mega</option>
                        <option>Kilo</option>
                        <option selected>1</option>
                        <option>Milli</option>
                        <option>Mikro</option>
                    </select></td>
            </tr>
        </table>
        <button onclick="berechnen()">Berechnen</button>
    </fieldset>
    <fieldset>
        <table cellpadding="10">
            <thead>
                <tr>
                    <th>Einheit:</th>
                    <th>Mega</th>
                    <th>Kilo</th>
                    <th>1</th>
                    <th>Milli</th>
                    <th>Mikro</th>
                </tr>
            </thead>
            <tbody id="mybody"></tbody>
        </table>
    </fieldset>
    <script>
        function berechnen() {
            var u, r, i, p;
            u = parseFloat(document.getElementsByName("uinput")[0].value);
            r = parseFloat(document.getElementsByName("rinput")[0].value);
            i = parseFloat(document.getElementsByName("iinput")[0].value);
            p = parseFloat(document.getElementsByName("pinput")[0].value);
            if (!isNaN(u)) {
                u = getSi(document.getElementsByName("uselect")[0].value, u);
            }
            if (!isNaN(r)) {
                r = getSi(document.getElementsByName("rselect")[0].value, r);
            }
            if (!isNaN(i)) {
                i = getSi(document.getElementsByName("iselect")[0].value, i);
            }
            if (!isNaN(p)) {
                p = getSi(document.getElementsByName("pselect")[0].value, p);
            }
            if (!isNaN(p) && !isNaN(u)) {
                i = p / u;
            } else if (!isNaN(p) && !isNaN(i)) {
                u = p / i;
            }
            if (!isNaN(u) && !isNaN(r)) {
                i = u / r;
            } else if (!isNaN(u) && !isNaN(i)) {
                r = u / i;
            } else if (!isNaN(r) && !isNaN(i)) {
                u = r * i;
            }
            if (!isNaN(u) && !isNaN(r) && !isNaN(i)) {
                document.getElementById("mybody").appendChild(newRow("U", u));
                document.getElementById("mybody").appendChild(newRow("R", r));
                document.getElementById("mybody").appendChild(newRow("I", i));
                if (!isNaN(p)) {
                    document.getElementById("mybody").appendChild(newRow("Power", p));
                } else {
                    document.getElementById("mybody").appendChild(newRow("Power", u * i));
                }
            }
        }
        function getSi(value1, value2) {
            switch (value1) {
                case "Mega":
                    return value2 * 1000000.0;
                case "Kilo":
                    return value2 * 1000.0;
                case "1":
                    return value2;
                case "Milli":
                    return value2 / 1000.0;
                case "Mikro":
                    return value2 / 1000000.0;
                default:
                    return null;
            }
        }
        function newRow(name, value1) {
            var tr = document.createElement("tr");
            var td1 = document.createElement("td");
            var td2 = document.createElement("td");
            var td3 = document.createElement("td");
            var td4 = document.createElement("td");
            var td5 = document.createElement("td");
            var td6 = document.createElement("td");
            td1.style = "text-align:center";
            td2.style = "text-align:right";
            td3.style = "text-align:right";
            td4.style = "text-align:right";
            td5.style = "text-align:right";
            td6.style = "text-align:right";
            td1.appendChild(document.createTextNode(name));
            td2.appendChild(document.createTextNode(value1 / 1000000.0));
            td3.appendChild(document.createTextNode(value1 / 1000.0));
            td4.appendChild(document.createTextNode(value1));
            td5.appendChild(document.createTextNode(value1 * 1000.0));
            td6.appendChild(document.createTextNode(value1 * 1000000.0));
            tr.appendChild(td1);
            tr.appendChild(td2);
            tr.appendChild(td3);
            tr.appendChild(td4);
            tr.appendChild(td5);
            tr.appendChild(td6);
            return tr;
        }
    </script>
</body>

</html>
```


Kann man sagen, dass bei kleineren elektrischen Geräten (Mikrocontrollern usw...) der Ohmsche Widerstand relativ hoch gewählt werden muss?

Also Beispiel: 12 Volt, 500 Mikroampere, 6 Milliwatt und (>=) 24 Kilo-Ohm?


----------



## Xyz1 (30. Aug 2019)

Ok, vielleicht ein nicht so schlaues Beispiel, da Wechselstrom und nicht Gleichstrom, aber wenn auf einem Wasserkocher 1000 Watt steht, was sei dann damit gemeint?


----------



## mrBrown (30. Aug 2019)

Dass er viel Strom braucht 


Er hat halt ne Leistung von 1000 W, worauf zielt die Frage ab?


----------



## White_Fox (30. Aug 2019)

Warum ruft mich hier keiner? 

Also:


Tobias-nrw hat gesagt.:


> Kann man sagen, dass bei kleineren elektrischen Geräten (Mikrocontrollern usw...) der Ohmsche Widerstand relativ hoch gewählt werden muss?


Wie meinst du das? Ich kann das Problem zu deiner Frage nicht aus deinem JS-Code lesen.



Tobias-nrw hat gesagt.:


> Ok, vielleicht ein nicht so schlaues Beispiel, da Wechselstrom und nicht Gleichstrom, aber wenn auf einem Wasserkocher 1000 Watt steht, was sei dann damit gemeint?


Das heißt einfach daß der Wasserkocher eine bestimmte Leistung (nämlich 1000W) aus dem Netz zieht und damit Wasser warm macht. Aus der Wärmekapazität von Wasser und der Wassermenge kannst du damit ausrechnen, wann das Wasser kocht. Oder anhand der Betriebsspannung, wieviel Strom er zieht (fahrlässig vereinfacht).

Die Einheit Joule (Einheit in der Energie gemessen wird) ist direkt daraus abgeleitet: nämlich als Wattsekunde, also wenn 1s lang eine Leistung von 1W geliefert werden kann.

Hier noch was, daß das Rechnen erleichtert:










Edit:


Tobias-nrw hat gesagt.:


> <td>Stromspannung U in Volt:</td>


Bitte bitte bitte, schlag dir die Größe 'Stromspannung' ganz, ganz schnell wieder aus dem Kopf. Die steht im Tafelwerk direkt hinter 'Fußballfelder'.
Was du da in der Einheit 'Volt' angibst heißt schlicht Spannung. Wenn du es z.B. von mechanischer Spannung oder Oberflächenspannung trennen willst, dann spricht man auch von der elektrischen Spannung. Aber Stromspannung würde eher das Produkt aus Strom und Spannung ausdrücken, was allerdings die bereits genannte Leistung ist und in Watt angegeben wird.
(Siehe z.B. Amperestunde -> Amper * Stunde, oder Wattsekunde -> Watt * Sekunde).


----------



## Xyz1 (31. Aug 2019)

A, jetzt weiß ich, was noch fehlt, nämlich die Umrechnung, wenn nur R und P gegeben ist...

Danke für die Grafik. Und wo ist jetzt genau der Unterschied zwischen Watt und Ampere?


----------



## White_Fox (31. Aug 2019)

Leistung (Einheit Watt) heißt Energieaufnahme oder -abgabe. Mit Leistung kannst du Wasser (oder andere Dinge) warm machen, Gegenstände bewegen, Strahlung (sowohl EM-Strahlung wie bei WLAN oder Bluetooth als auch Licht) erzeugen, usw.

Die Einheit Ampere gibt einfach an, wieviele Ladungsträger pro Sekunde durch deinen Leiter fließen.

Ein kleines Beispiel:
Du hast einen Widerstand von 10Ω, durch den 2A fließen. Dann liegt über dem Widerstand eine Spannung von 20V an, und es werden 40W in Wärme umgesetzt.

Jetzt nimmst du einen Widerstand von 0Ω (vulgo Supraleiter), und läßt durch diesen 2A fließen. Dann liegt über dem Widerstand Supraleiter eine Spannung von 0V an, und es wird keine Leistung umgesetzt.


----------



## Xyz1 (31. Aug 2019)

Gut, Danke euch....
Dann habe ich hier noch eine Frage:
Eine Batterie mit einer Nennspannung 18V und mit einer Kapazität 90Ah ist mit einem Widerstand an eine Lampe mit Betriebsspannung 12V ac/dc und einer Leistung 60 Watt angeschlossen.
a) Welche maximale Stromstärke ist bei 12V nötig damit die Lampe eine Leistung von 60 Watt umsetzt? 
Wären das 5 amps oder 3 1/3 amps?


----------



## temi (31. Aug 2019)

Tobias-nrw hat gesagt.:


> Gut, Danke euch....
> Dann habe ich hier noch eine Frage:
> Eine Batterie mit einer Nennspannung 18V und mit einer Kapazität 90Ah ist mit einem Widerstand an eine Lampe mit Betriebsspannung 12V ac/dc und einer Leistung 60 Watt angeschlossen.
> a) Welche maximale Stromstärke ist bei 12V nötig damit die Lampe eine Leistung von 60 Watt umsetzt?
> Wären das 5 amps oder 3 1/3 amps?



Eine Glühlampe ist ein ohmscher Verbraucher. Der Widerstand (der Lampe) lässt sich mit R = U² / P berechnen: 18² / 60 = 5,4 Ohm

Jetzt betreibst du diese Glühlampe mit einer niedrigeren Spannung von 12 Volt, daraus ergibt sich ein Strom von I = U/R: 12 / 5,4 = 2,22 A.

Die umgesetzte Leistung reduziert sich natürlich entsprechend P = U * I: 12 * 2,22 = 26,64 W

Diese Rechnung gilt, wenn du die Lampe direkt an die Stromquelle angeschlossen hast. Ich weiß nicht, was du mit "einem Widerstand" meinst. Solltest du noch einen "Vorwiderstand" haben, dann muss der natürlich auch in die Rechnung einfließen.

Edit:

Die Kapazität der Batterie sagt nur aus, wie lange du die Lampe jetzt betreiben kannst. In diesem Fall 90 / 2,2 = 40,9 h


----------



## Xyz1 (31. Aug 2019)

@temi : 5,4 Ohm erhalte ich, aber I=2,22A noch nicht, was wäre falsch?


```
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Ohm Rechner</title>
</head>

<body>
    <fieldset>
        <h3>U = R*I</h3>
        <h3>Power = U*I</h3>
        <table>
            <tr>
                <td>Spannung U in Volt:</td>
                <td><input type="text" name="uinput"></td>
                <td><select name="uselect" size="5">
                        <option>Mega</option>
                        <option>Kilo</option>
                        <option selected>1</option>
                        <option>Milli</option>
                        <option>Mikro</option>
                    </select></td>
                </label>
            </tr>
            <tr>
                <td>Widerstand R in Ohm:</td>
                <td><input type="text" name="rinput"></td>
                <td><select name="rselect" size="5">
                        <option>Mega</option>
                        <option>Kilo</option>
                        <option selected>1</option>
                        <option>Milli</option>
                        <option>Mikro</option>
                    </select></td>
            </tr>
            <tr>
                <td>StromstÃ¤rke I in Ampere:</td>
                <td><input type="text" name="iinput"></td>
                <td><select name="iselect" size="5">
                        <option>Mega</option>
                        <option>Kilo</option>
                        <option selected>1</option>
                        <option>Milli</option>
                        <option>Mikro</option>
                    </select></td>
            </tr>
            <tr>
                <td>Elektrische Leistung P in Watt:</td>
                <td><input type="text" name="pinput"></td>
                <td><select name="pselect" size="5">
                        <option>Mega</option>
                        <option>Kilo</option>
                        <option selected>1</option>
                        <option>Milli</option>
                        <option>Mikro</option>
                    </select></td>
            </tr>
        </table>
        <button onclick="berechnen()">Berechnen</button>
    </fieldset>
    <fieldset>
        <table cellpadding="10">
            <thead>
                <tr>
                    <th>Einheit:</th>
                    <th>Mega</th>
                    <th>Kilo</th>
                    <th>1</th>
                    <th>Milli</th>
                    <th>Mikro</th>
                </tr>
            </thead>
            <tbody id="mybody"></tbody>
        </table>
    </fieldset>
    <script>
        function berechnen() {
            var u, r, i, p;
            u = parseFloat(document.getElementsByName("uinput")[0].value);
            r = parseFloat(document.getElementsByName("rinput")[0].value);
            i = parseFloat(document.getElementsByName("iinput")[0].value);
            p = parseFloat(document.getElementsByName("pinput")[0].value);
            if (!isNaN(u)) {
                u = getSi(document.getElementsByName("uselect")[0].value, u);
            }
            if (!isNaN(r)) {
                r = getSi(document.getElementsByName("rselect")[0].value, r);
            }
            if (!isNaN(i)) {
                i = getSi(document.getElementsByName("iselect")[0].value, i);
            }
            if (!isNaN(p)) {
                p = getSi(document.getElementsByName("pselect")[0].value, p);
            }
            if (!isNaN(p) && !isNaN(u)) {
                i = p / u;
            } else if (!isNaN(p) && !isNaN(i)) {
                u = p / i;
            } else if (!isNaN(p) && !isNaN(r)) {
                u = Math.sqrt(p * r);
            }
            if (!isNaN(u) && !isNaN(r)) {
                i = u / r;
            } else if (!isNaN(u) && !isNaN(i)) {
                r = u / i;
            } else if (!isNaN(r) && !isNaN(i)) {
                u = r * i;
            }
            if (!isNaN(u) && !isNaN(r) && !isNaN(i)) {
                if (isNaN(p)) {
                    p = u * i;
                }
                document.getElementById("mybody").appendChild(newRow("U", u));
                document.getElementById("mybody").appendChild(newRow("R", r));
                document.getElementById("mybody").appendChild(newRow("I", i));
                document.getElementById("mybody").appendChild(newRow("Power", p));
            }
        }
        function getSi(value1, value2) {
            switch (value1) {
                case "Mega":
                    return value2 * 1000000.0;
                case "Kilo":
                    return value2 * 1000.0;
                case "1":
                    return value2;
                case "Milli":
                    return value2 / 1000.0;
                case "Mikro":
                    return value2 / 1000000.0;
                default:
                    return null;
            }
        }
        function newRow(name, value1) {
            var tr = document.createElement("tr");
            var td1 = document.createElement("td");
            var td2 = document.createElement("td");
            var td3 = document.createElement("td");
            var td4 = document.createElement("td");
            var td5 = document.createElement("td");
            var td6 = document.createElement("td");
            td1.style = "text-align:center";
            td2.style = "text-align:right";
            td3.style = "text-align:right";
            td4.style = "text-align:right";
            td5.style = "text-align:right";
            td6.style = "text-align:right";
            td1.appendChild(document.createTextNode(name));
            td2.appendChild(document.createTextNode(value1 / 1000000.0));
            td3.appendChild(document.createTextNode(value1 / 1000.0));
            td4.appendChild(document.createTextNode(value1));
            td5.appendChild(document.createTextNode(value1 * 1000.0));
            td6.appendChild(document.createTextNode(value1 * 1000000.0));
            tr.appendChild(td1);
            tr.appendChild(td2);
            tr.appendChild(td3);
            tr.appendChild(td4);
            tr.appendChild(td5);
            tr.appendChild(td6);
            return tr;
        }
    </script>
</body>

</html>
```


----------



## Xyz1 (31. Aug 2019)

temi hat gesagt.:


> Jetzt betreibst du diese Glühlampe mit einer niedrigeren Spannung von 12 Volt, daraus ergibt sich ein Strom von


Oh, verstanden... Aber dann wäre die Leistung nur 26,66 Watt.


----------



## temi (31. Aug 2019)

Tobias-nrw hat gesagt.:


> 5,4 Ohm erhalte ich, aber I=2,22A noch nicht, was wäre falsch?



Mit welcher Spannung rechnest du denn?

Für die Berechnung des Widerstandes der Lampe brauchst du deren Nenndaten, also 18V und 60 W.

Für den tatsächlich fließenden Strom benötigst du den berechneten Widerstand und die Betriebsspannung, also 5,4 Ohm und 12 V.


----------



## temi (31. Aug 2019)

Tobias-nrw hat gesagt.:


> Aber dann wäre die Leistung nur 26,66 Watt.



Das ist richtig. Wenn du eine Glühlampe mit einer niedrigeren Spannung als ihrer Nennspannung betreibst, dann wird sie dunkler leuchten (= weniger Leistung).

Den Strom kannst du auch nicht ändern, er ergibt sich aus der angelegten Spannung und dem Widerstand. Da der Widerstand fix ist, ist deine einzige Einflussgröße die Spannung.


----------



## Xyz1 (31. Aug 2019)

Hier wären die zwei Rechnungen:





temi hat gesagt.:


> Den Strom kannst du auch nicht ändern, er ergibt sich aus der angelegten Spannung und dem Widerstand. Da der Widerstand fix ist, ist deine einzige Einflussgröße die Spannung


Danke sehr!


----------



## temi (31. Aug 2019)

Tobias-nrw hat gesagt.:


> Eine Batterie mit einer Nennspannung 18V und mit einer Kapazität 90Ah ist mit einem Widerstand an eine Lampe mit Betriebsspannung 12V ac/dc und einer Leistung 60 Watt angeschlossen.



Oha! Ich glaube ich habe mich da etwas verlesen und eine falsche Rechnung aufgestellt.

Korrektur:

Die Nenndaten der Lampe sind 12 V und 60 W. Damit ergibt sich eine innerer Widerstand von 12² V / 60 W = 2,4 Ohm.

Daraus wiederum ergibt sich ein Strom von 12 V / 2,4 Ohm = 5 A (oder 60 W / 12V).

Deine Batterie hat eine Spannung von 18 V. Um die Lampe nicht zu überlasten, muss am Vorwiderstand eine Spannung von 18 V - 12 V = 6 V abfallen. Der Vorwiderstand errechnet sich damit (R = U / I): 6 V / 5 A = 1,2 Ohm.

Sorry für die Verwirrung, das kommt davon, wenn man nicht richtig liest.


----------



## Xyz1 (31. Aug 2019)

Jetzt bin ich total verwirrt. 

Wenn ich die Glühlampe mit Vorwiderstand anschließe (2,4 Ohm + 1,2 Ohm = 3,6 Ohm bei 18 V) so setzt diese doch 90 Watt um?


----------



## temi (31. Aug 2019)

Tobias-nrw hat gesagt.:


> Jetzt bin ich total verwirrt.
> 
> Wenn ich die Glühlampe mit Vorwiderstand anschließe (2,4 Ohm + 1,2 Ohm = 3,6 Ohm bei 18 V) so setzt diese doch 90 Watt um?



Stimmt fast. Insgesamt werden tatsächlich 90 Watt umgesetzt. 60 Watt entfallen dabei auf die Lampe und 30 Watt auf den Vorwiderstand (nur das dieser nicht leuchtet).

Das liegt ganz einfach daran, dass du die Lampe an einer Energiequelle mit einer höheren Spannung, als ihrer Nennspannung (der Lampe) betreibst.

Nebenbei handelt es sich bei dem Widerstand schon um einen ordentlichen Brocken:

https://www.conrad.de/de/p/ate-elec...d-1-2-axial-bedrahtet-50-w-5-1-st-421553.html

Er muss immerhin 30 Watt "verbrennen" können ohne selbst zu "verbrennen"


----------



## Xyz1 (31. Aug 2019)

Ok, dann nochmal:
Bei 12V, 2.4 Ohm und 5 amps setzt die Glühlampe eine Leistung von 60 Watt um.
Bei 6V (Differenz(!)), 1.2 Ohm und 5 amps wir eine Leistung von 30 Watt "umgesetzt".
Dann sollte der Vorwiderstand bei 18V mind. 1.2 Ohm sein, damit die Glühlampe nicht durchbrennt?


----------



## temi (31. Aug 2019)

Tobias-nrw hat gesagt.:


> Bei 12V, 2.4 Ohm und 5 amps setzt die Glühlampe eine Leistung von 60 Watt um.



Ja.



Tobias-nrw hat gesagt.:


> Bei 6V (Differenz(!)), 1.2 Ohm und 5 amps wir eine Leistung von 30 Watt "umgesetzt".



Ja.



Tobias-nrw hat gesagt.:


> Dann sollte der Vorwiderstand bei 18V mind. 1.2 Ohm sein, damit die Glühlampe nicht durchbrennt?



Der Widerstand muss genau 1,2 Ohm haben, um die Lampe mit 12 V betreiben zu können. Erhöhst du den Widerstand, dann fällt am Widerstand eine höhere Spannung ab und die Lampe leuchtet dunkler. Umgekehrt würde die Lampe heller leuchten, aber vermutlich schnell kaputt gehen.

Ein etwas einleuchtenderer Aufbau wäre folgender:

Du hast eine Spannungsquelle mit 24 V, dann kannst du einfach zwei deiner 12 V Lampen in Reihe schalten und alles ist gut.

So funktionieren übrigens auch die meisten klassischen Weihnachtsbaum-Beleuchtungen: Einfach genügend Lampen in Reihe schalten, bis die 230 V Netzspannung korrekt aufgeteilt ist.


----------



## Xyz1 (31. Aug 2019)

Hatte mal eine Roller-Unterbodenbeleuchtung mit ultrahellen LEDs. Diese hatte ich auch in Reihe geschaltet. (Das ist natürlich illegal, aber auch schon ein paar Jahre her).


----------



## Xyz1 (14. Sep 2019)

Guten Morgen, so jetzt habe ich ein konkretes Beispiel. Ich habe eine LED ohne weitere Angaben. Also geht man von einer 2 V Spannung und 20 mA aus. Ich habe eine Spannungsquelle von +3.3V und Ground. Nach meinem Rechner brauche ich einen 65 Ohms Widerstand. Die Leistung wäre dann 40 Milliwatt. Jetzt habe ich aber nur Rot-Schwarz-Schwarz-Schwarz-Rot Widerstände, also 20 Ohms Widerstände mit einer Toleranz +- 2%. Ich möchte vier dieser LEDs parallel schalten, damit ich die Zahlen 0-15 binär anzeigen kann. Dabei soll jede LED aber gleich hell leuchten. Wie soll ich das zusammenstecken? 

Hinweis: Das lange Bein ist immer die Anode = Plus.


----------



## temi (14. Sep 2019)

Tobias-nrw hat gesagt.:


> Guten Morgen, so jetzt habe ich ein konkretes Beispiel. Ich habe eine LED ohne weitere Angaben. Also geht man von einer 2 V Spannung und 20 mA aus. Ich habe eine Spannungsquelle von +3.3V und Ground. Nach meinem Rechner brauche ich einen 65 Ohms Widerstand. Die Leistung wäre dann 40 Milliwatt. Jetzt habe ich aber nur Rot-Schwarz-Schwarz-Schwarz-Rot Widerstände, also 20 Ohms Widerstände mit einer Toleranz +- 2%.



Naja, du kannst dich entscheiden entweder du schaltest 3 x 20 Ohm = 60 Ohm oder 4 x 20 Ohm = 80 Ohm in Reihe zu jeweils einer LED. Im ersten Fall wäre die LED evtl. leicht überlastet. Geht man von 1,5 V und 20 mA aus, würde die zweite Variante besser passen.



Tobias-nrw hat gesagt.:


> Ich möchte vier dieser LEDs parallel schalten, damit ich die Zahlen 0-15 binär anzeigen kann.



Da du für die binäre Anzeige jede LED separat (mit 3,3V) ansteuern musst, brauchst du auch für jede einzelne LED den/die entsprechenden Vorwiderstand.

Edit: Es geht allerdings auch, die vier LED jeweils an einem Steuerausgang anzuschließen (parallel) und dazu in Reihe den Vorwiderstand. Der Widerstand ist sozusagen zwischen den parallelen LEDs und Masse (bei plusschaltenden Ausgängen).


----------



## Xyz1 (14. Sep 2019)

Danke, werde es gleich probieren.


----------



## Xyz1 (14. Sep 2019)

@temi : Meinst Du das so?



K, M, O sind die 20 Ohm Widerstände.
Bei V, W, Z, A_1 würd ich dann die einzelnen LEDs ansteuern? 

Die LEDs wären parallel geschaltet und die (Nach)Widerstände in Reihe


----------



## mihe7 (14. Sep 2019)

Tobias-nrw hat gesagt.:


> Also geht man von einer 2 V Spannung und 20 mA aus. Ich habe eine Spannungsquelle von +3.3V und Ground. Nach meinem Rechner brauche ich einen 65 Ohms Widerstand. Die Leistung wäre dann 40 Milliwatt. Jetzt habe ich aber nur Rot-Schwarz-Schwarz-Schwarz-Rot Widerstände, also 20 Ohms Widerstände mit einer Toleranz +- 2%.


Ja, an der LED fallen 2 V ab, verbleiben 1,3 V. Ein 65 Ohm Widerstand an 1,3 V begrenzt auf 20 mA. Die Leistung der LED wäre dann 40 mW. 

Wenn Du die LEDs einzeln schalten willst, wirst Du an einzelnen Vorwiderständen nicht vorbeikommen, da sich der Strom in der Parallelschaltung addiert. Begrenzt Du den Strom bei 4 LEDs z. B. auf 4 x 20 mA mit einem Widerstand, dann teilen sich die 80 mA auf die 4 LEDs auf - sofern diese leuchten... Willst Du nur eine LED schalten, laufen die 80 mA über die eine LED; wird nicht lange halten 

Umgekehrt: begrenzt Du den Gesamtstrom auf 20 mA, dann müssten sich mehrere eingeschalteten LEDs den Strom teilen. Im schlechtesten Fall (alle 4 Leuchten), bekommt jede nur noch 5 mA  

Ich würde jeder LED einen Vorwiderstand mit ein paar Ohm spendieren, und gut ists.

Aber: wo ist @White_Fox ?


----------



## temi (14. Sep 2019)

temi hat gesagt.:


> Edit: Es geht allerdings auch, die vier LED jeweils an einem Steuerausgang anzuschließen (parallel) und dazu in Reihe den Vorwiderstand. Der Widerstand ist sozusagen zwischen den parallelen LEDs und Masse (bei plusschaltenden Ausgängen).



Vergiss das wieder. Wie @mihe7 bereits erläutert hat, ist das eine ziemliche Schnapsidee.


----------



## Xyz1 (14. Sep 2019)

Kurze Zwischenfrage: Habe ganz vergessen, ich brauche doch noch 4 "Schalter" in Form eines bipolaren npn-Transistors oder?






						EACO
					






					www.eaco-ev.de
				




Sonst wäre das doch sinnlos oder? Und dann wäre das Gleich-hell-Leuchten bei jeder Kombination nicht möglich, oder doch?


----------



## temi (14. Sep 2019)

Tobias-nrw hat gesagt.:


> Kurze Zwischenfrage: Habe ganz vergessen, ich brauche doch noch 4 "Schalter" in Form eines bipolaren npn-Transistors oder?
> 
> 
> 
> ...



Das hat weniger mit "gleich hell leuchten" als mit der maximalen Strombelastbarkeit deiner Ausgänge (die wir nicht kennen) zu tun. Jeder Ausgang müsste mindestens 20 mA liefern können, damit die LED normal leuchtet. Kann der Ausgang weniger, dann musst du ihn z.B. mit einem Transistor oder Optokoppler "verstärken". Dieser muss dann natürlich ebenfalls mindestens die 20 mA liefern können


----------



## Xyz1 (14. Sep 2019)

Ach, dusselig, ich habe doch analoge und digitale Pins auf dem Board...

Andere Frage: Ich habe so ein elegoo Sensor Kit und einen Precision Potentiometer ( https://www.elegoo.com/product/elegoo-upgraded-electronics-fun-kit/ und https://www.instructables.com/id/How-to-use-Potentiometer-Arduino-Tutorial/ s. rechts ). Leider habe ich das data sheet dafür nicht. Kann ich über den/die/das Potentiometer nicht die Helligkeit der LEDs steuern?


----------



## mihe7 (14. Sep 2019)

Tobias-nrw hat gesagt.:


> Ach, dusselig, ich habe doch analoge und digitale Pins auf dem Board...
> 
> Andere Frage: Ich habe so ein elegoo Sensor Kit und einen Precision Potentiometer ( https://www.elegoo.com/product/elegoo-upgraded-electronics-fun-kit/ und https://www.instructables.com/id/How-to-use-Potentiometer-Arduino-Tutorial/ s. rechts ). Leider habe ich das data sheet dafür nicht. Kann ich über den/die/das Potentiometer nicht die Helligkeit der LEDs steuern?


Ja, wenn Du aber ein Poti für alle LEDs verwendest, müsstest Du ein ähnliches Problem wie vorher bekommen: die Helligkeit ist abhängig von der Zahl der aktivierten LEDs. 

Wenn Dein Board PWM unterstützt, würde ich das mal probieren.


----------



## Xyz1 (14. Sep 2019)

mihe7 hat gesagt.:


> Wenn Dein Board PWM unterstützt, würde ich das mal probieren


Unterstützt es... jetzt habe ich aber ein ganz anderes Prblm: Ich kann das Board nicht mehr flashen:

Connecting...
error: CORTEX_M4_0: Error connecting to the target: Frequency is out of range.


----------



## mihe7 (14. Sep 2019)

Tobias-nrw hat gesagt.:


> error: CORTEX_M4_0: Error connecting to the target: Frequency is out of range.


Keine Ahnung, aber dem Netz nach ist der Fehler kein unbekannter


----------



## Xyz1 (14. Sep 2019)

mihe7 hat gesagt.:


> Keine Ahnung, aber dem Netz nach ist der Fehler kein unbekannter


Es kann an Windows liegen, meinem USB Anschluss, dem Flash Tool, der Ide oder dem Board....


----------



## Xyz1 (14. Sep 2019)

Das Board ist ein Tiva C EK-TM4C123GXL (80MHz).


----------



## Xyz1 (14. Sep 2019)

Shit, ein Reset/ERASE geht nur mit LM Flash Programmer und dafür muss ich mich bei TI registrieren, was mir jetzt zu umständlich ist...
Im Sinne der Umwelt, werd ich mir vielleicht ein neues Board bestellen.
Welches?


----------



## Xyz1 (14. Sep 2019)

Endlich hats geklappt, nachdem ich es an Linux angeschlossen hatte, fragt mich aber nicht wieso....





Mit dem pots kann ich den Wert lesen und die Helligkeit ändern. Weihnachtlich oder? (nicht wundern, + ist ground)


----------



## Xyz1 (15. Sep 2019)

mihe7, ich glaube es gibt einen Konflikt mit meiner Cygwin Installation und da speziell mit geteilten Libraries.


----------



## Xyz1 (15. Sep 2019)

Noch eine Frage.... Nach dem Code aus dem Internet soll der pots Werte zwischen 0-1024 liefern, allerdings liefert er bei mir Werte zwischen 0-4096 (mit diesen Werten habe ich die map-Funktion aufgerufen). Kann es sein das der pots einen Vorwiderstand benötigt? Wie erwähnt, kein data/spec sheet dazu....


----------



## Xyz1 (15. Sep 2019)

Sidefact: Es ist lustig, lang wohl an Windows/Cygwin nicht am USB Anschluss denn in einer VM kann ich ihn flashen....


----------



## mihe7 (15. Sep 2019)

Tobias-nrw hat gesagt.:


> Nach dem Code aus dem Internet soll der pots Werte zwischen 0-1024 liefern, allerdings liefert er bei mir Werte zwischen 0-4096 (mit diesen Werten habe ich die map-Funktion aufgerufen). Kann es sein das der pots einen Vorwiderstand benötigt? Wie erwähnt, kein data/spec sheet dazu....


Die Erklärung dürfte ganz einfach die sein, dass der Arduino lt. https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/ einen 10-Bit ADC hat, während Dein Board lt. Datenblatt über einen 12-Bit ADC verfügt.


----------



## Xyz1 (15. Sep 2019)

Also kein Widerstand?


----------



## White_Fox (15. Sep 2019)

mihe7 hat gesagt.:


> Aber: wo ist @White_Fox ?



Da ist man nur mal ein einziges Wochenende weg... 

@Tobias: Betreibe die LEDs lieber mit Vorwiderstand, und zwar EIN Widerling PRO LED.
Bei deiner jetzigen Konstruktion hast du eigentlich keine Kontrolle mehr, in welcher LED jetzt zuviel Strom fließt, die rote dürfte als erste über den Jordan gehen. Alle deine LEDs haben unterschiedliche Vorwärtsspannungen -> unterschiedliche Stromaufnahme.
Zudem haben LEDs einen negativen Temperaturkoeffizienten, d.h. wenn sie warm werden, dann sinkt der differentielle Widerstand nochmal. Das führt zu mehr Strom -> mehr Wärme -> Widerstand sinkt -> ...
Aber darauf wollte termi dich schon hinweisen.

Im Übrigen dimmt man LEDs per PWM. Pulsweitenmodulation. Nicht über den Strom.


----------



## Xyz1 (15. Sep 2019)

Du hast überhaupt nichts gelesen. Die LEDs sind gar nicht an +3.3 V angeschlossen...


----------



## White_Fox (15. Sep 2019)

Das Potentiometer ist in diesem Fall der Vorwiderstand, andere Widerstände sehe ich auf deinem Foto nicht.



Tobias-nrw hat gesagt.:


> Die LEDs sind gar nicht an +3.3 V angeschlossen...


Ja, woran denn dann? Es macht keinen Unterschied ob die an 3,3V oder an GND zusammenlaufen, am Ende kommt es auf dasselbe raus: Ungleichmäßige Stromverteilung in den Strängen, und daraus folgend eine thermische Mitkopplung.


----------



## Xyz1 (15. Sep 2019)

White_Fox hat gesagt.:


> Ja, woran denn


pwm 

Als Frage bleibt nur ob der pots 3,3 V verträgt.


----------



## White_Fox (15. Sep 2019)

PWM heißt doch nur, Ein- oder Auszuschalten. Das sagt nichts darüber aus, an welcher Spannung die LEDs verdrahtet sind, ob in Reihe oder parallel, ... und da hab ich eher auf dein Bild Bezug genommen.

Aber ja, das mihe7 PWM schonmal erwähnt hat, hab ich wohl überlesen, tut mir leid. Es wird höchste Zeit daß das Wochenende anfängt...

Und was meinst du mit Pots...ich denke immer, du hast ein 'r' vergessen und meinst Port, den Port(Pin) vom Mikrocontroller. Aber wahrscheinlich meinst du das Poti...? Wenn ja: Dem Poti ist die Spannung in gewisser Weise egal, es verträgt nur eine maximale Verlustleistung, bzw. einen maximalen Strom. Die kannst du errechnen, und hängt von der Potieinstellung sowie dem ab, was da noch angeschlossen ist. Deswegen ist Angabe einer Spannung meist ein bisschen witzlos.


----------



## Xyz1 (15. Sep 2019)

Du hast das immernoch nicht ganz gelesen und widersprichst Dir auch etwas, wenn Du erst dimmen schreibst und dann ein/ausschalten.
Außerdem die - -Leiste ist hierbei +3.3V. Die +-Leiste gnd.
Die LEDs sind gefärbt, aber erzeugen nicht rotes, gelbes, grünes usw. Licht.


----------



## mihe7 (15. Sep 2019)

White_Fox hat gesagt.:


> Da ist man nur mal ein einziges Wochenende weg...


Das scheint ein Naturgesetz zu sein. Kaum hat man den Fuß zur Tür hinaus gestellt, wird der Ruf laut 



Tobias-nrw hat gesagt.:


> Also kein Widerstand?


Das habe ich ganz übersehen und bin verwirrt: was hat die Auflösung des ADCs mit dem Widerstand zu tun?



Tobias-nrw hat gesagt.:


> wenn Du erst dimmen schreibst und dann ein/ausschalten.


Naja, LEDs schaltet man schnell ein und aus. Je länger aus, desto dunkel 

Die LEDs ohne Widerstand direkt an PWM anzuschließen, halte ich für keine gute Idee. Das kann Dir @White_Fox sicher besser und korrekt erklären. Ich mache mir die Sache recht einfach: Halbleiter haben für mich praktisch keinen Widerstand, an ihnen fällt lediglich Spannung ab. Wenn der Widerstand gegen 0 geht, wird der Strom nicht begrenzt (I=U/R, also I->unendlich für R->0), was dazu führt, dass das Bauteil ruck-zuck über den Jordan geht. Die Widerstände dienen einfach dazu, den Strom zu begrenzen.

D. h. wenn Du an Deinen PWM-Ausgang einen Halbleiter ohne Widerstand anschließt, ist das praktisch ein Kurzschluss und entweder die LED oder Dein Controller (oder beides) geben den Geist auf  Das ist nur meine Annahme, ob es tatsächlich so ist: KA. Dieses Elektronikzeug... Ich könnte mir auch vorstellen, dass die Frequenz eine Art Widerstand erzeugt aber wie gesagt: KA.


----------



## kneitzel (15. Sep 2019)

Tobias-nrw hat gesagt.:


> Die LEDs sind gefärbt, aber erzeugen nicht rotes, gelbes, grünes usw. Licht.


Doch, die LEDs erzeugen direkt Licht in der gewünschten Wellenlänge. Einzige Ausnahme können weisse LEDs sein, bei denen das erzeugte Licht von einer Phosphorverbindung aufgenommen und in langwellige dem Licht unterschiedlicher Wellenlängen wieder ausgegeben wird.

Aber das findet sich alles im Netz deutlich besser beschrieben z.B. auf https://www.led.de/led-funktionsweise


----------



## White_Fox (16. Sep 2019)

Tobias-nrw hat gesagt.:


> Du hast das immernoch nicht ganz gelesen und widersprichst Dir auch etwas, wenn Du erst dimmen schreibst und dann ein/ausschalten.
> Außerdem die - -Leiste ist hierbei +3.3V. Die +-Leiste gnd.
> Die LEDs sind gefärbt, aber erzeugen nicht rotes, gelbes, grünes usw. Licht.


mihe7 vereinfacht zwar grob fahrlässig, aber im Kern hat er Recht: Das schnelle Ein-Ausschalten (mit mehreren kHz) sieht für dein Auge wie gleichmäßig gedimmt aus. Hättest du die Augen einer Fliege, hättest du ein Stroboskop gebaut.

Und wie ich schon sagte: Es ist wirklich völlig egal, was an den Leisten steht: Faktisch schaltest du die LEDs, bis auf das gemeinsame Poti, nackt an 3,3V. Das mögen LEDs nicht ewig.


----------



## Xyz1 (16. Sep 2019)

Also nochmal, die 5 LEDs sind an die 5 pwm Pins/Ausgänge des mc angeschlossen. Ich weiß nicht, mit wie viel V. Aber sie leuchten verhältnismäßig dunkel. Zudem hatte ich sie gestern mehrere Stunden laufen.
Ich dimme sie mit
digitalWrite(LedPort, value);
wobei value zwischen 0 (aus) und 255 (sehr sehr hell).
Den Wert des Potentiometer lese ich mit
int val = analogRead(potsPort);
val = map(val, 0, 4096, 0, 255);

Vereinfacht gesagt, verstehe ich die Funktionsweise von digitalRead und analogRead noch nicht.

Laufen denn die LEDs oder das Potentiometer überlastet?


----------



## kneitzel (16. Sep 2019)

Also zum Verständnis der pwm Ausgänge ist dies hier vielleicht hilfreich:








						Arduino Tutorial - Pulsweitenmodulation (PWM)
					

PWM steht für Pulsweitenmodulation und Arduino verwendet diese leistungsstarke PWM-Technik zur Steuerung analoger Schaltungen mit seinen digitalen…




					www.exp-tech.de
				




Dann ist das Verständnis von Dioden wichtig:
Dioden haben keinen Widerstand, der über das Ohmsche Gesetz berechnet werden könnte. 





						Dioden — Grundwissen Elektronik
					






					www.grund-wissen.de


----------



## temi (16. Sep 2019)

Tobias-nrw hat gesagt.:


> Also nochmal, die 5 LEDs sind an die 5 pwm Pins/Ausgänge des mc angeschlossen. Ich weiß nicht, mit wie viel V.



Na ganz einfach mit der Betriebsspannung des IC, also 3,3V.

Es wurde schon mehrfach erwähnt, bzw. es gibt auch einen Link dazu, PWM = Pulsweitenmodulation. Das heißt einfach, das du das Verhältnis zwischen Einschalt- und Ausschaltphase veränderst.  Je kürzer die Einschaltphase (in einer "Schwingung", bei PWM gibt es auch eine Frequenz) desto niedriger ist die durchschnittliche Leistung über die Schwingung betrachtet. Bei 50% liegen demnach eine halbe Schwingung 3,3 V an der LED an und die andere halbe Schwingung 0 V.



Tobias-nrw hat gesagt.:


> 255 (sehr sehr hell)



Vermutlich ist 255 = 100%, d.h. die LED wird für die gesamte Schwingung mit 3,3 V betrieben.


----------



## Xyz1 (16. Sep 2019)

Danke, dort wird es super erklärt. Dann erzeugt der Pin mit digitalWrite ein Rechteck Signal mit einer On-Time mit vollen 5V. analogWrite würde über einen gegeben Zeitraum bis zum nächsten analogWrite volle 5V erzeugen. In der Abb. ist auch zu sehen, das an die LED ein Vorwiderstand angeschlossen ist.


----------



## mihe7 (16. Sep 2019)

White_Fox hat gesagt.:


> mihe7 vereinfacht zwar grob fahrlässig


Hmm... für grobe Fahrlässigkeit müsste ich es besser wissen (können), was nicht der Fall ist 



White_Fox hat gesagt.:


> Hättest du die Augen einer Fliege, hättest du ein Stroboskop gebaut.


Pssst! Du riskierst gerade eine Petition: Stopp der PWM - zum Schutz der armen Fliegen.


----------



## Xyz1 (16. Sep 2019)

Nur Boards mit einem echten digital-analog-Wandler können die Spannung reduzieren...

Fragt sich nur wieso die LEDs noch alle funktionieren.


----------



## kneitzel (16. Sep 2019)

Tobias-nrw hat gesagt.:


> Nur Boards mit einem echten digital-analog-Wandler können die Spannung reduzieren...
> 
> Fragt sich nur wieso die LEDs noch alle funktionieren.


Die Ausgänge haben zum eigenen Schutz in der Regel auch Widerstände. Wenn sich die Leute ständig die Boards zerhauen würden, nur weil sie ein Kabel falsch angeschlossen hätten, würden sich sonst ärgern und die ganzen Bastelsysteme hätten sich so nie durchsetzen können. (Die Transistoren / ICs der Boards mögen so höhere Ströme ebenso wenig wie Deine LEDs.)

Wenn Du also mehr Leistung haben willst aus einem Ausgang, dann musst Du Dir dafür selbst eine entsprechende Ansteuerung schreiben z.B. mit entsprechenden Leistungs-(MOS)FETs und so.


----------



## Xyz1 (16. Sep 2019)

Jetzt verstehe ich gar nix mehr.


----------



## kneitzel (16. Sep 2019)

Evtl. hilft dies bei der RWTH Aachen: https://www.medit.hia.rwth-aachen.de/fileadmin/MSP430Buch/msp_html_buchse8.html 

Da wird beschrieben, wie so Ausgänge regelgerecht betrieben werden (sprich: Spezifikation wird genommen und dann wird darauf aufbauend alles beschrieben.

Bezüglich meiner Aussage zu dem Schutz der Ausgänge konnte ich jetzt aber auf Anhieb nichts finden. Kann also sein, dass RasPi und Adruino diesbezüglich nichts haben und ich da einfach etwas durcheinander gebracht habe (Vorlesung Technische Informatik ist schon etwas länger her bei mir und kann sein, dass ich da dann jetzt etwas nicht ganz korrekt in Erinnerung habe oder dass sich da Änderungen ergeben haben im Doing.)

Aber bei der RWTH wird dort erläutert, wie man den Ausgang ansprechen kann entweder innerhalb der vorgegebenen Leistungsgrenzen (Dein Beispiel mit LED incl. Berechnung des korrekten Widerstandes) bis hin zu Leistungsstufen.


----------



## White_Fox (16. Sep 2019)

Tobias-nrw hat gesagt.:


> Vereinfacht gesagt, verstehe ich die Funktionsweise von digitalRead und analogRead noch nicht.


Der ADC liefert eine Ganzzahl zurück, das Ganze funktioniert folgendermaßen:
1. Der ADC vergleicht die zu messende Spannung mit einer Referenzspannung, diese mußt du wissen. Das kann die Betriebsspannung sein, manche ADCs stellen intern eine kalibrierte Referenzspannung zur Verfügung, und in der Regel kann man außen eine eigene Referenzspannung anlegen. Wie das bei dir gehandhabt wird, steht im Datenblatt von Chip und Board.

2. Die Referenzspannung stellt sozusagen das obere Ende des Meßbereichs dar. Der Bereich zwischen 0V und der Referenzspannung wird in lauter etwa gleichgroße Teilbereiche zerlegt, die Anzahl der Teilbereiche entspricht der Auflösung des ADCs. Die Ganzzahl, die der ADC liefert, entspricht dann dem Teilbereich. In eine Formel gegossen: `Eingangsspannung = (Wandlungsergebnis / Auflösung) * Referenzspannung`.




mihe7 hat gesagt.:


> Hmm... für grobe Fahrlässigkeit müsste ich es besser wissen (können), was nicht der Fall ist


Die Aussage, daß Halbleiter keinen Widerstand hätten, ist etwas irreführend: LEDs haben einen differentiellen Widerstand, eine Funktion mit Temperatur und angelegter Spannung als Eingangsparameter (und sicher noch ein paar weiteren).
Theoretisch (aber nur theoretisch) könnte man schon eine Spannung so einstellen, daß nur der gewünschte Strom fließt.

Tatsächlich ist es so, daß die Differentielle-Widerstandsfunktion (e-funtionsartig) so blöd verläuft, daß relativ geringe Spannungsschwankungen und Ungenauigkeiten, die es ja immer gibt, zu relativ hohen Stromänderungen führen.
Deine Erklärung (HL mit 0Ω trotz Spannungsfall annehmen und einen Widerstand über gewünschten Strom und verbleibende Restspannung auslegen) führt immerhin zum richtigen Ergebnis.

Nur: Anfänger probieren es halt trotzdem anders und stellen fest: funktioniert trotzdem (zumindest vorläufig), und ziehen daraus die falschen Schlüsse (alles Quatsch, was die Großen da sagen).


----------



## Xyz1 (16. Sep 2019)

Also wer möchte kann sich das mal ansehen ich habe noch einen Temp and Humi Sensor (DHT11) angeschlossen:


Spoiler





```
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>

int pins[] = {
    PF_2, PF_3, PB_3, PC_4, PC_5};

DHT_Unified dht(PE_4, DHT11);

int potValue;
float t, h;
int t1, t2, h1, h2;

void setup()
{
  // put your setup code here, to run once:
  pinMode(PF_2, OUTPUT);
  pinMode(PF_3, OUTPUT);
  pinMode(PB_3, OUTPUT);
  pinMode(PC_4, OUTPUT);
  pinMode(PC_5, OUTPUT);
  pinMode(A11, INPUT);
  Serial.begin(9600);

  dht.begin();
  // Print temperature sensor details.
  sensor_t sensor;
  dht.temperature().getSensor(&sensor);
  Serial.println(F("------------------------------------"));
  Serial.println(F("Temperature Sensor"));
  Serial.print(F("Sensor Type: "));
  Serial.println(sensor.name);
  Serial.print(F("Driver Ver:  "));
  Serial.println(sensor.version);
  Serial.print(F("Unique ID:   "));
  Serial.println(sensor.sensor_id);
  Serial.print(F("Max Value:   "));
  Serial.print(sensor.max_value);
  Serial.println(F("°C"));
  Serial.print(F("Min Value:   "));
  Serial.print(sensor.min_value);
  Serial.println(F("°C"));
  Serial.print(F("Resolution:  "));
  Serial.print(sensor.resolution);
  Serial.println(F("°C"));
  Serial.println(F("------------------------------------"));
  // Print humidity sensor details.
  dht.humidity().getSensor(&sensor);
  Serial.println(F("Humidity Sensor"));
  Serial.print(F("Sensor Type: "));
  Serial.println(sensor.name);
  Serial.print(F("Driver Ver:  "));
  Serial.println(sensor.version);
  Serial.print(F("Unique ID:   "));
  Serial.println(sensor.sensor_id);
  Serial.print(F("Max Value:   "));
  Serial.print(sensor.max_value);
  Serial.println(F("%"));
  Serial.print(F("Min Value:   "));
  Serial.print(sensor.min_value);
  Serial.println(F("%"));
  Serial.print(F("Resolution:  "));
  Serial.print(sensor.resolution);
  Serial.println(F("%"));
  Serial.println(F("------------------------------------"));
}

void readpots()
{
  potValue = analogRead(A11);
  potValue = map(potValue, 0, 4096, 0, 255);
  // Serial.println(potValue);
}

void readtempandhumi()
{
  sensors_event_t event;
  dht.temperature().getEvent(&event);
  t = event.temperature;
  dht.humidity().getEvent(&event);
  h = event.relative_humidity;

  t1 = (int)t;
  t2 = ((int)(t * 10)) % 10;
  h1 = (int)h;
  h2 = ((int)(h * 10)) % 10;
  Serial.print(t1);
  Serial.print(" ");
  Serial.print(t2);
  Serial.print("   ");
  Serial.print(h1);
  Serial.print(" ");
  Serial.println(h2);
}

void loop()
{
  // pins
  readpots();
  for (int i = 0; i < 5; i++)
  {
    analogWrite(pins[i], potValue);
  }
  delay(10000);
  readtempandhumi();
  readpots();
  // temp
  for (int i = 0; i < 5; i++)
  {
    if (t1 & (1 << i))
    {
      analogWrite(pins[i], potValue);
    }
    else
    {
      analogWrite(pins[i], 0);
    }
  }
  delay(10000);
  readpots();
  for (int i = 0; i < 5; i++)
  {
    if (t2 & (1 << i))
    {
      analogWrite(pins[i], potValue);
    }
    else
    {
      analogWrite(pins[i], 0);
    }
  }
  delay(10000);
  readpots();
  // humi
  for (int i = 0; i < 5; i++)
  {
    if ((h1 - 40) & (1 << i))
    {
      analogWrite(pins[i], potValue);
    }
    else
    {
      analogWrite(pins[i], 0);
    }
  }
  delay(10000);
}
```


----------



## mihe7 (16. Sep 2019)

White_Fox hat gesagt.:


> LEDs haben einen differentiellen Widerstand, eine Funktion mit Temperatur und angelegter Spannung als Eingangsparameter (und sicher noch ein paar weiteren).


Ah, verstehe, wobei... Dieses Halbleitergedöns ist echt strange. 

Nehmen wir mal an, wir könnten Spannung/Strom einer LED konstant halten, also z. B. 2 V/20 mA. Würde das dann nicht bedeuten, dass man die LED mit einem "Ersatzwiderstand" von 100 Ohm darstellen könnte, so dass bei direktem Betrieb unter 2 V die LED selbst den Strom auf 20 mA begrenzen würde? 

Was anderes: wenn ich das richtig lese (Google hilft ), könnte man eine Diode in Sperrichtung über der Durchbruchspannung betreiben, wenn man den Strom begrenzt. Aber wozu sollte man das tun? Um Überspannungen abzufedern?


----------



## Xyz1 (16. Sep 2019)

Hier nochmal in Schön:


Spoiler





```
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>

int pins[] = {
  PF_2, PF_3, PB_3, PC_4, PC_5
};

DHT_Unified dht(PA_5, DHT11);

int potValue;
float t, h;
int t1, t2, h1, h2;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  pinMode(PF_2, OUTPUT);
  pinMode(PF_3, OUTPUT);
  pinMode(PB_3, OUTPUT);
  pinMode(PC_4, OUTPUT);
  pinMode(PC_5, OUTPUT);
  pinMode(A11, INPUT);
  // pinMode(PA_5, INPUT);

  dht.begin();
  // Print temperature sensor details.
  sensor_t sensor;
  dht.temperature().getSensor(&sensor);
  Serial.println(F("------------------------------------"));
  Serial.println(F("Temperature Sensor"));
  Serial.print  (F("Sensor Type: ")); Serial.println(sensor.name);
  Serial.print  (F("Driver Ver:  ")); Serial.println(sensor.version);
  Serial.print  (F("Unique ID:   ")); Serial.println(sensor.sensor_id);
  Serial.print  (F("Max Value:   ")); Serial.print(sensor.max_value); Serial.println(F("°C"));
  Serial.print  (F("Min Value:   ")); Serial.print(sensor.min_value); Serial.println(F("°C"));
  Serial.print  (F("Resolution:  ")); Serial.print(sensor.resolution); Serial.println(F("°C"));
  Serial.println(F("------------------------------------"));
  // Print humidity sensor details.
  dht.humidity().getSensor(&sensor);
  Serial.println(F("Humidity Sensor"));
  Serial.print  (F("Sensor Type: ")); Serial.println(sensor.name);
  Serial.print  (F("Driver Ver:  ")); Serial.println(sensor.version);
  Serial.print  (F("Unique ID:   ")); Serial.println(sensor.sensor_id);
  Serial.print  (F("Max Value:   ")); Serial.print(sensor.max_value); Serial.println(F("%"));
  Serial.print  (F("Min Value:   ")); Serial.print(sensor.min_value); Serial.println(F("%"));
  Serial.print  (F("Resolution:  ")); Serial.print(sensor.resolution); Serial.println(F("%"));
  Serial.println(F("------------------------------------"));

  readtempandhumi();
}

void readpots() {
  potValue = analogRead(A11);
  potValue = map(potValue, 0, 4096, 0, 255);
  // Serial.println(potValue);
}

void readtempandhumi() {
  sensors_event_t event;
  dht.temperature().getEvent(&event);
  t = event.temperature;
  dht.humidity().getEvent(&event);
  h = event.relative_humidity;

  t1 = (int) t;
  t2 = ((int) (t * 10)) % 10;
  h1 = (int) h;
  h2 = ((int) (h * 10)) % 10;

  Serial.println(t);
  // Serial.println(h);
}

void blink(int v) {
  for (int i = 0; i < 5; i++) {
    if (v & (1 << i)) {
      analogWrite(pins[i], potValue);
    } else {
      analogWrite(pins[i], 0);
    }
  }
}

void longDelay(int v) {
  for (int i = 0; i < 10; i++) {
    readpots();
    blink(v);
    delay(500);
  }
}

void loop() {
  // pins
  longDelay(31);
  // temp
  readtempandhumi();
  longDelay(t1);
  longDelay(t2);
  // humi
  longDelay(h1 - 40);
}
```





mihe7 , ich unterbreche nur ungern den Monolog, aber muss ich nicht einfach nur 5mal 60 Ohms Vorwiderstände anschließen?


----------



## mihe7 (16. Sep 2019)

Tobias-nrw hat gesagt.:


> mihe7 , ich unterbreche nur ungern den Monolog, aber muss ich nicht einfach nur 5mal 60 Ohms Vorwiderstände anschließen?


Den "noch Monolog", so viel Zeit muss sein   Du musst (solltest) vor jede LED den entsprechenden Vorwiderstand schalten. Wenn ich rechnerisch 65 Ohm brauche, würde ich allerdings lieber erstmal 80 oder sogar 100 Ohm verwenden. Das Zeug muss ja nicht maximal hell leuchten.


----------



## Xyz1 (16. Sep 2019)

Danke, Thema, bis auf Weiteres, gelöst.


----------



## White_Fox (16. Sep 2019)

mihe7 hat gesagt.:


> Nehmen wir mal an, wir könnten Spannung/Strom einer LED konstant halten, also z. B. 2 V/20 mA. Würde das dann nicht bedeuten, dass man die LED mit einem "Ersatzwiderstand" von 100 Ohm darstellen könnte, so dass bei direktem Betrieb unter 2 V die LED selbst den Strom auf 20 mA begrenzen würde?


Ja, aber wie gesagt: theoretisch. Denn wenn die Spannung statt 2V z.B. 2,1V beträgt, steigt der Strom z.B. auf 23mA, was dann z.B. nur noch etwas über 90Ω sind. Und dann kommt ja noch die Temperaturabhängigkeit hinzu. Und die Exemplarstreuung nicht vergessen, kein Halbleiter ist wie der andere.

Aber: wenn du eine LED mit 25mA anstatt der 20mA aus den Absolute Maximum Ratings des Datenblatts betreibst, geht sie auch nicht sofort kaputt. Sie hält dann anstatt der möglichen 100.000 Betriebsstunden vielleicht nur noch 10.000. Oder 5.000, genau weiß das normalerweise niemand. Oft fallen die auch nicht schlagartig aus, sondern liefern immer weniger Licht.

Ich hab mal die LEDs einer LCD-Hintergrundbeleuchtung mit 15V betrieben (eigentlich sollten es max. 5V sein), mit einem Netzteil das auch 10A liefern konnte. Ich glaube, in der Spitze flossen da 1A oder 2A durch die LEDs, und die sind nicht schlagartig kaputt gegangen. Sie wurden nur immer schwächer, wechselten ihre Farbe von grün nach amber und orange, aber bis die wirklich kaputt waren hat das bestimmt 20min gedauert. Ich weiß im Nachhinein gar nicht mehr genau, ob ich nicht sogar aufgegeben habe als sie nur noch schwach geglimmt haben oder ob die wirklich duster waren am Ende.




mihe7 hat gesagt.:


> Was anderes: wenn ich das richtig lese (Google hilft ), könnte man eine Diode in Sperrichtung über der Durchbruchspannung betreiben, wenn man den Strom begrenzt. Aber wozu sollte man das tun? Um Überspannungen abzufedern?


Ja, um Überspannungen zu begrenzen macht man sowas, dazu gibt es spezielle TVS-Dioden. Oder schau dir mal an, was man mit Zenerdioden macht. Bei LEDs sollte man sowas unterlassen, Sperrspannung deutlich über ihrer Durchlaßspannung mögen die gar nicht gerne. Sie sind halt auf andere Zwecke optimiert.
Kapazitätsdioden bereibt man übrigens auch in Sperrichtung (und erhält eine spannungsverstellbare Kapazität).


----------



## Xyz1 (16. Sep 2019)

Tobias-nrw hat gesagt.:


> Jetzt habe ich aber nur Rot-Schwarz-Schwarz-Schwarz-Rot Widerstände, also 20 Ohms Widerstände mit einer Toleranz +- 2%


Habe mich geirrt. Das sind Braun-Schwarz-Schwarz-Schwarz-Braun Widerständen, also 100 Ohms. 20 Ohm wäre auch etwas seltsam gewesen.
Und der mc liefert wirklich 3,3 V?


----------



## White_Fox (16. Sep 2019)

Tobias-nrw hat gesagt.:


> Und der mc liefert wirklich 3,3 V?


Wenn er vorne mit 3,3V befeuert wird - ja. (Und 5V sind eher selten, bei 8-Bit-Prozessoren noch anzutreffen.)


----------



## Xyz1 (16. Sep 2019)

Wie sind eigentlich die Spezifikationen für einen USB 2/3 -Anschluss?

Oh - einfache Suche: https://gizmodo.com/can-i-use-the-same-charger-for-multiple-devices-510829339 :
"Thankfully, the advent of USB changed all that and has provided an easy, standardized platform for charging devices. All USB cords carry the same 5V, regardless of if it's got a 30-pin head or a microUSB plug, whether it's first-party or third."


----------



## Xyz1 (17. Sep 2019)

Habe noch eine Frage, darf ich fragen?

Möchte ein lcd Display anschließen und habe drei verschiedene Grafiken aus denen immer eine unterschiedliche Belegung hervorgeht....


----------



## White_Fox (17. Sep 2019)

Tobias-nrw hat gesagt.:


> Habe noch eine Frage, darf ich fragen?


Was für eine Frage... 



Tobias-nrw hat gesagt.:


> Möchte ein lcd Display anschließen und habe drei verschiedene Grafiken aus denen immer eine unterschiedliche Belegung hervorgeht....


Was für ein LCD? Zu fast* jedem LCD gibt es ein Datenblatt. Was sagt es?

*LCDs, die billig verramscht werden, können auch schonmal ohne Datenblatt daherkommen. Meine ersten LCD-Versuche habe ich mit so einem billig-LCD gemacht. Und zwei Wochen damit zugebracht, das Teil zu reverse engineeren - in Assembler.


----------



## Xyz1 (17. Sep 2019)

Was muss ich denn alles wo anschließen?
Untere Abb. db4 bis db7 sind nicht angeschlossen, obere Abb. db0 bis db3 sind nicht angeschlossen.
Wieso VSS an gnd und VDD an 5V - nicht umgekehrt?
Wieso sind die digitalen Eingänge/Ausgänge am Pwm angeschlossen?

Dann

```
LiquidCrystal(uint8_t rs, uint8_t enable,
        uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
        uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
        uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
        uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7);
  LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
        uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
  LiquidCrystal(uint8_t rs, uint8_t enable,
        uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3);
```

Welchen Konstruktor kann ich da nehmen? 

Das Display (LCD1602) leuchtet jedenfalls nicht


----------



## White_Fox (17. Sep 2019)

Tobias-nrw hat gesagt.:


> Wieso sind die digitalen Eingänge/Ausgänge am Pwm angeschlossen?


Der PWM-Ausgang KANN PWM liefern. Er kann aber auch als normaler I/O verwendet werden.

Ansonsten schau mal her:


			LCD-Displays
		




Tobias-nrw hat gesagt.:


> Welchen Konstruktor kann ich da nehmen?


Keine Ahnung, vom Arduinogeraffel lass ich die Finger, das ist Teufelszeug.



Tobias-nrw hat gesagt.:


> Das Display (LCD1602) leuchtet jedenfalls nicht


Kontrast richtig eingestellt?


----------



## Xyz1 (17. Sep 2019)

White_Fox hat gesagt.:


> Kontrast richtig eingestellt


Bis jetzt nicht, geht das nur mit Potentiometer?


----------



## mihe7 (17. Sep 2019)

Täuscht mich das Bild (Schematic) oder sind hier die 5V des Arduino direkt mit GND verbunden?!?

EDIT: Hier gibts noch eine Anleitung: https://starthardware.org/lcd/


----------



## White_Fox (17. Sep 2019)

Tobias-nrw hat gesagt.:


> Bis jetzt nicht, geht das nur mit Potentiometer?


Theoretisch geht es auch mit zwei Festwiderständen, aber das ist eher schlecht, gerade für Anfänger ist es hilfreicher, wenn man einfach mal rumdrehen und einen brauchbaren Kontrast suchen kann. Stell den Kontrast so ein, daß ganz leicht die Kästchen zu sehen sind wenn das LCD nichts anzeigt.


----------



## mihe7 (17. Sep 2019)

Tobias-nrw hat gesagt.:


> Wieso VSS an gnd und VDD an 5V - nicht umgekehrt?








						Spannungsbezeichnung – Wikipedia
					






					de.wikipedia.org


----------



## White_Fox (17. Sep 2019)

mihe7 hat gesagt.:


> Täuscht mich das Bild (Schematic) oder sind hier die 5V des Arduino direkt mit GND verbunden?!?


Nein, das ist korrekt (also das, was du schreibst, nicht der Schaltplan), sogar gleich an zwei Stellen.
Vor allem wird die Hintergrundbeleuchtung des LCDs ohne Vorwiderstand betrieben (das sind auch nur ein paar LEDs).

Die ganze Konstruktion ist einfach nur grausig, ich sag ja: Teufelszeug.


----------



## Xyz1 (17. Sep 2019)

White_Fox hat gesagt.:


> Theoretisch geht es auch mit zwei Festwiderständen, aber das ist eher schlecht, gerade für Anfänger ist es hilfreicher, wenn man einfach mal rumdrehen und einen brauchbaren Kontrast suchen kann. Stell den Kontrast so ein, daß ganz leicht die Kästchen zu sehen sind wenn das LCD nichts anzeigt.


Wie bekomm ich denn 5V auf 1V?

Aber egal was ich mache das Display bleibt dunkel... Ich habe erstmal genug davon... 

Achso hier wäre der Code:

```
#include<LiquidCrystal.h>

LiquidCrystal lcd(2, 3, 4, 5, 6, 7, 8);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("helloo");
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.println("Halloo");
  delay(1000);
  lcd.setCursor(0, 1);
  lcd.print(millis() / 1000);
}
```


----------



## Xyz1 (17. Sep 2019)

mihe7 hat gesagt.:


> Täuscht mich das Bild (Schematic) oder sind hier die 5V des Arduino direkt mit GND verbunden


Da war jemand sehr sorgfältig.


----------



## mihe7 (17. Sep 2019)

White_Fox hat gesagt.:


> Vor allem wird die Hintergrundbeleuchtung des LCDs ohne Vorwiderstand betrieben (das sind auch nur ein paar LEDs).


Das lustige ist: "Falls eine Hintergrundbeleuchtung vorhanden ist. Bei einigen Modulen muss 5 V angelegt werden, bei anderen ist der Strom durch einen Vorwiderstand zu begrenzen." (https://de.wikipedia.org/wiki/HD44780)



Tobias-nrw hat gesagt.:


> Wieso sind die digitalen Eingänge/Ausgänge am Pwm angeschlossen?


Die Pins können verschiedene Funktionen übernehmen, je nachdem wie Du den AVR programmierst. Standardmäßig dürften sie als digitale Eingänge konfiguriert sein, müsstest Du im Datenblatt nachschauen. Für PWM werden sie als Ausgang konfiguriert und nach der PWM-Aktivierung von der Hardware (im Chip) ein- und ausgeschaltet.


----------



## mihe7 (17. Sep 2019)

Tobias-nrw hat gesagt.:


> Wie bekomm ich denn 5V auf 1V?


Im einfachsten (aber ineffizienten) Fall mittels Spannungsteiler. Achtung, Killergrafik:

```
+5V --------[R1]---*---[R2]---*--- GND
                   |          |
                   |          |
                    
                    <-- 1V -->
```

Der Widerstand R1 muss 4x so groß sein wie R2. 

Rges = R1 + R2
Iges = 5V / Rges

Durch die Widerstände R1 und R2 fließt der Strom Iges. D. h. am Widerstand R1 fällt die Spannung `U1 = R1 * Iges` ab. U1 sollen 4V sein, also `4V = R1 * Iges <=> R1 = 4V/Iges` und somit analog `R2=1V/Iges`


----------



## White_Fox (18. Sep 2019)

@mihe7 Elektroniker biste also auch...


----------



## Xyz1 (18. Sep 2019)

mihe7s ihre Grafiken sind immer der Hammer.


----------



## White_Fox (18. Sep 2019)

Ich hoffe doch sehr, daß mihe7 den nicht händisch gezeichnet hat. Ich kenne mihe7 ja als höchst hilfsbereit bis hin zur Selbstopferung, aber dermaßen viel Handarbeit, das tut doch weh zu sehen, wenn es auch Werkzeuge dafür gibt:


			Simple ASCII circuits
		






						ascii circuit schematic at DuckDuckGo
					

DuckDuckGo. Privacy, Simplified.




					duckduckgo.com


----------



## mihe7 (18. Sep 2019)

White_Fox hat gesagt.:


> @mihe7 Elektroniker biste also auch...


Oje, auf einer Skala von 0 bis 10: 0,1 - an gefährlichem Halbwissen. Ich kenne in erster Linie das Ohmsche Gesetz, den Kirchhoff habe ich auch schon mal gehört und ansonsten habe ich mal eine Zeit lang rumgebastelt und da ein paar Infos mitgenommen. 

Das sind so wenige, die kann ich hier aufzählen. So habe ich Spannungsteiler kennen gelernt eben so wie wie Festspannungsregler, glaube zu wissen, dass man mit parallel geschalteten Kondensatoren bei der Spannungsversorgung eine Glättung der Spannung erreichen kann. Ich weiß, dass man mit einer Spule und einem Kondensator einen Schwingkreis basteln kann. Mir ist bekannt, dass eine Dioden eine Sperrichtung und eine Durchlassrichtung besitzen, oder dass man Transistoren als Schalter oder als Verstärker verwenden kann. Und natürlich noch ein paar ICs wie eben die ATmegas bzw. ATtinys, den NE555 oder den MAX232. Mit dem 2-Wire-Interface (I2C-Bus) habe ich mal was gemacht (DS18B20 und einen Sensor für Temp., Luftfeuchte und -druck, ich glaube BME280 o. ä. lesen) und mehr fällt mir auch schon nicht ein. 

Doch: ich weiß, dass man sich billig Platinen ätzen kann


----------



## mihe7 (18. Sep 2019)

White_Fox hat gesagt.:


> Ich hoffe doch sehr, daß mihe7 den nicht händisch gezeichnet hat. Ich kenne mihe7 ja als höchst hilfsbereit bis hin zur Selbstopferung, aber dermaßen viel Handarbeit, das tut doch weh zu sehen, wenn es auch Werkzeuge dafür gibt:
> 
> 
> Simple ASCII circuits
> ...


Ich zeichne alles im Texteditor. Bevor ich da lang nach einer Lösung suche: vim und fertig ist die Sache. Das ist eine Sache von ein, zwei Minuten.

Viel schlimmer ist, dass ich mir den ganzen Beitrag hätte sparen können: https://de.wikipedia.org/wiki/Spannungsteiler


----------



## White_Fox (18. Sep 2019)

Pass bloß auf daß du jetzt nicht von Headhuntern gejagt wirst. Das sind genug Buzzwords, daß einige von denen deinen Post mit ihren Stellenanforderungen abgleichen könnten. 



Spoiler



Leider kein Witz, in Stellenausschreibungen für HW-Entwickler stehen öfter mal Dinge drin wie "Gefordert: Erfahrung mit der SPI-Schnittstelle"


----------



## mihe7 (18. Sep 2019)

Mist, die SPI-Schnittstelle hatte ich ganz vergessen: MOSI lebt


----------

