NCP380-Ilim-Widerstand mit Python berechnen

English Deutsch

Problem

Du möchtest den korrekten Wert für den Ilim-Widerstand für den NCP380-Strombegrenzer-IC mit einem benutzerdefinierten Stromlimit berechnen.

Lösung

Dieses Skript verwendet nicht nur die Formel aus dem Datenblatt zur Berechnung des theoretischen Widerstandswerts, sondern führt auch Bereichsprüfungen durch (der NCP380 unterstützt nur Ströme von 0,1 bis 2,1 Ampere) und berechnet den nächsten E96-Widerstandswert.

Um das Skript auszuführen, musst du Resistors.py im selben Verzeichnis ablegen (siehe diesen vorherigen Post für Details).

compute_ncp380.py
#!/usr/bin/env python3
"""
Ein Skript, das den NCP380-Limit-Widerstand berechnet.
Siehe http://www.onsemi.com/pub_link/Collateral/NCP380-D.PDF Seite 17

Basierend auf Resistors.py, siehe
https://techoverflow.net/2015/05/19/finding-the-nearest-e96-resistor-value-in-python/
"""
from UliEngineering.Electronics.Resistors import *
from UliEngineering.EngineerIO import format_value

__author__ = "Uli Koehler"
__license__ = "CC0 1.0 Universal"
__version__ = "1.0"

def computeNCP380AdjResistor(ilim):
    """Berechnet den exakten Wert für den NCP380-Adjust-Widerstand,
    gegeben einen Ilim-Wert in Ampere"""
    #Grenzen prüfen
    if ilim < 0.100: print("Warnung: NCP380 unterstützt keine Ströme unter 100 Milliamperes")
    elif ilim > 2.1: print("Warnung: NCP380 unterstützt keine Ströme über 2.1 Amperes")
    #Widerstand gemäß Gleichung 5 aus dem Datenblatt berechnen
    rlim = -5.2959 * ilim**5 + 45.256 * ilim**4 - 155.25 * ilim**3 + 274.39 * ilim**2 - 267.6 * ilim + 134.21
    return rlim * 1000.0 #Gleichung liefert Kiloohm

# Verwendungsbeispiel: E96 Rlim für Ilim=0.23A berechnen
if __name__ == "__main__":
    # Theoretischen Wert berechnen
    rlim = computeNCP380AdjResistor(0.23) #amperes
    # Nächsten tatsächlichen Wert berechnen
    actual_rlim = nearest_resistor(rlim, sequence=e96)
    # Ergebnisse ausgeben
    print("Theoretical rlim value: %s" % (format_value(rlim, "Ω")))
    print("Closest E96 value: %s" % (format_value(actual_rlim, "Ω")))

Check out similar posts by category: Electronics, Python