Skip to main content

python3 library for Ohms law.

Project description

ohmslaw

PyPI - Downloads PyPI - License Documentation Status GitHub Tag

Ohms law is an important and fundamental rule to remember when working with resistors and electronics in general. It defines the relationship between the components’ current I in amps (A), voltage V in volts (V) and resistance R in ohms (Ω). Ohm’s law consists of three mathematical equations that explain the relationship between current, voltage and resistance. If you know two of these values.

Quickstart:

install

pip install ohmslaw

import

from ohmslaw import Ohms

Combinations of Resistors

>>> 
>>> LED_VOLTAGE = 3
>>> SOURCE_VOLTAGE = 48
>>> 
>>> resistors = [200, 44, 350, 3, 1200, 500]
>>> 
>>> o = Ohms()
>>> 
>>> def calculate_voltage(selected_resistors):
...     total_resistance = o.series(*selected_resistors)
...     total_current = o.current(SOURCE_VOLTAGE, total_resistance)
...     led_voltage = total_current * LED_VOLTAGE
...     return led_voltage
... 
>>> # Testing different combinations of resistors
>>> for i in range(len(resistors)):
...     for j in range(i, len(resistors)):
...         combination = resistors[:i] + resistors[j:]
...         voltage = calculate_voltage(combination)
...         print(f"Resistors: {combination}, Voltage across LED: {voltage:.2f}V")
... 
>>> # Checking the closest combination for 3V across the LED
>>> best_combination = None
>>> smallest_difference = float('inf')
>>> 
>>> for i in range(len(resistors)):
...     for j in range(i, len(resistors)):
...         combination = resistors[:i] + resistors[j:]
...         voltage = calculate_voltage(combination)
...         difference = abs(voltage - LED_VOLTAGE)
...         if difference < smallest_difference:
...             smallest_difference = difference
...             best_combination = combination
... 
>>> print(f"Best combination of resistors: {best_combination} with voltage across LED: {calculate_voltage(best_combination):.2f}V")
Resistors: [200, 44, 350, 3, 1200, 500], Voltage across LED: 0.06V
Resistors: [44, 350, 3, 1200, 500], Voltage across LED: 0.07V
Resistors: [350, 3, 1200, 500], Voltage across LED: 0.07V
Resistors: [3, 1200, 500], Voltage across LED: 0.08V
Resistors: [1200, 500], Voltage across LED: 0.08V
Resistors: [500], Voltage across LED: 0.29V
Resistors: [200, 44, 350, 3, 1200, 500], Voltage across LED: 0.06V
Resistors: [200, 350, 3, 1200, 500], Voltage across LED: 0.06V
Resistors: [200, 3, 1200, 500], Voltage across LED: 0.08V
Resistors: [200, 1200, 500], Voltage across LED: 0.08V
Resistors: [200, 500], Voltage across LED: 0.21V
Resistors: [200, 44, 350, 3, 1200, 500], Voltage across LED: 0.06V
Resistors: [200, 44, 3, 1200, 500], Voltage across LED: 0.07V
Resistors: [200, 44, 1200, 500], Voltage across LED: 0.07V
Resistors: [200, 44, 500], Voltage across LED: 0.19V
Resistors: [200, 44, 350, 3, 1200, 500], Voltage across LED: 0.06V
Resistors: [200, 44, 350, 1200, 500], Voltage across LED: 0.06V
Resistors: [200, 44, 350, 500], Voltage across LED: 0.13V
Resistors: [200, 44, 350, 3, 1200, 500], Voltage across LED: 0.06V
Resistors: [200, 44, 350, 3, 500], Voltage across LED: 0.13V
Resistors: [200, 44, 350, 3, 1200, 500], Voltage across LED: 0.06V
Best combination of resistors: [500] with voltage across LED: 0.29V
>>> 

current multiplied by resistance = voltage

>>> o = Ohms()
>>> results = o.volts(I=12, R=4)
>>> 
>>> print(results)
48
>>> 

voltage Divided by resistance = current

>>> o = Ohms()
>>> results = o.current(V=12, R=4)
>>> 
>>> print(results)
3.0
>>> 

voltage divided by current = resistance

>>> o = Ohms()
>>> results = o.resistance(V=48, I=4)
>>> 
>>> print(results)
12.0
>>> 

Watts

>>> o = Ohms()
>>> results = o.watts(I=2, R=15)
>>> 
>>> print(results)
60
>>> 

find the resistance value to limit the electrical voltage of a circuit

>>> o = Ohms()
>>> results = o.find_resistor(source=48, 
...                           component_voltage=12,
...                           component_current=1)
>>> 
>>> print(results)
36.0
>>> 

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ohmslaw-1.2rc1.tar.gz (12.3 kB view hashes)

Uploaded Source

Built Distribution

ohmslaw-1.2rc1-py3-none-any.whl (12.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page