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 Beitrag für Details).

compute_ncp380.py
#!/usr/bin/env python3
"""
Ein Skript, das den NCP380-Begrenzungswiderstand 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):
    """Berechne den genauen Wert für den NCP380-Abgleichwiderstand,
    gegeben einen Ilim-Wert in Ampere"""
    #Grenzen prüfen
    if ilim < 0.100: print("Warnung: NCP380 unterstützt keine Ströme unter 100 Milliampere")
    elif ilim > 2.1: print("Warnung: NCP380 unterstützt keine Ströme über 2,1 Ampere")
    #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 #equation gives us kiloohms

# Anwendungsbeispiel: Berechne E96 Rlim für Ilim=0.23A
if __name__ == "__main__":
    # Theoretischen Wert berechnen
    rlim = computeNCP380AdjResistor(0.23) #ampere
    # Nächsten tatsächlichen Wert berechnen
    actual_rlim = nearest_resistor(rlim, sequence=e96)
    # Ergebnisse ausgeben
    print("Theoretischer rlim-Wert: %s" % (format_value(rlim, "Ω")))
    print("Nächster E96-Wert: %s" % (format_value(actual_rlim, "Ω")))

Check out similar posts by category: Electronics, Python