A codificação de resistores com cores é usada para classificar estes componentes. A ideia é simples e definida por um padrão internacional: há um mapeamento de cores para valores específicos, portanto o valor da resistência pode ser traduzido em uma sequência de cores sendo que as 2 ou 3 primeiras cores determinam o valor da resistência, a seguinte determina a ordem de grandeza e a última determina a tolerância. Por exemplo, um resistor de 2260Ω e 1% de tolerância tem 5 faixas de cor: vermelha (2), vermelha (2), azul (6), marrom (x10) e marrom (±1%).
Defina a função IEC60062
que recebe um string
determinando o valor da resistência e retorna a sequência de cores a ser impressa sobre o resistor, como um list
. O valor é dadono formato "FM T", onde FF é um número real com até 2 casas de precisão, MM é o múltiplo de grandeza da unidade de medida ohm (Ω) e TT é o valor da tolerância (real). Note que há uma lacuna (espaço) entre MM e TT.
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
Como você quer as entradas do sistema, poderia me dar um exemplo de saída do código?
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
Segue abaixo uma possível implementação da função IEC60062 em Python:
def IEC60062(resistor_value):
# Dicionário de cores e seus respectivos valores
colors = {
'preto': 0,
'marrom': 1,
'vermelho': 2,
'laranja': 3,
'amarelo': 4,
'verde': 5,
'azul': 6,
'violeta': 7,
'cinza': 8,
'branco': 9
}
# Extrai os valores do string
value, multiplier, tolerance = resistor_value.split()
# Converte o valor para ohms
value = float(value) * 10 ** colors[multiplier]
# Calcula as cores correspondentes às duas primeiras faixas
first_color = colors[str(int(value // 10 ** 2))]
second_color = colors[str(int(value % 10 ** 2 // 10 ** 1))]
# Calcula a cor correspondente à terceira faixa
if value >= 10 ** 6:
third_color = colors['megaohm']
elif value >= 10 ** 3:
third_color = colors['kiloohm']
else:
third_color = colors['ohm']
# Calcula a cor correspondente à quarta faixa
tolerance_color = {
1: 'marrom',
2: 'vermelho',
5: 'verde',
10: 'azul'
}[int(tolerance)]
# Retorna a sequência de cores
return [first_color, second_color, third_color, tolerance_color]
Essa função utiliza um dicionário de cores para mapear os nomes das cores para seus respectivos valores. Em seguida, ela extrai os valores do string de entrada, converte o valor para ohms e calcula as cores correspondentes a cada faixa. Para a quarta faixa, a função utiliza outro dicionário para mapear os valores de tolerância para as cores correspondentes. Finalmente, a função retorna a sequência de cores em forma de lista.
def IEC60062(valor_resistencia):
# Mapeamento de cores para valores de resistência
cores_resistencia = {
'0': 'preto',
'1': 'marrom',
'2': 'vermelho',
'3': 'laranja',
'4': 'amarelo',
'5': 'verde',
'6': 'azul',
'7': 'roxo',
'8': 'cinza',
'9': 'branco'
}
# Mapeamento de cores para valores de tolerância
cores_tolerancia = {
'1': 'marrom',
'2': 'vermelho',
'5': 'verde',
'10': 'ouro',
'20': 'prata'
}
# Dividir o valor da resistência em partes
partes = valor_resistencia.split()
# Obter as partes relevantes
parte_valor = partes[0]
parte_multiplo = partes[1]
parte_tolerancia = partes[2]
# Obter as cores correspondentes
cores_valor = [cores_resistencia[digito] for digito in parte_valor]
cor_multiplo = cores_resistencia[parte_multiplo]
cor_tolerancia = cores_tolerancia[parte_tolerancia]
# Retornar a sequência de cores
return cores_valor + [cor_multiplo, cor_tolerancia]
# Exemplo de uso:
valor_resistencia_exemplo = "2260 x10 ±1%"
sequencia_cores = IEC60062(valor_resistencia_exemplo)
print(sequencia_cores)
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.