Hace mucho que no juego con circuitos, agradecería una revisión de cordura del siguiente diseño; Estoy tratando de contar la cantidad de horas desde que se presionó el botón de reinicio por última vez. Lo ideal sería que durara mucho tiempo solo alimentado por baterías, pero si alguna vez lo hago funcionar, ¡seré feliz!
(Diagrama de circuito a continuación)
Calculé mis valores astables NE555 forzando bruscamente la ecuación en Wikipedia para 'valores comunes' de resistencias y condensadores que estaban más cerca de 3600 segundos (he agregado el código ruby a continuación para aquellos interesados). ¿Parecen sensatos?
Estoy planeando usar los siguientes componentes. ¿Hay algo más que deba tener en cuenta?
(Me di cuenta de que la lógica NAND puede no ser clara; ¡me tomó un tiempo descubrir cómo implementar un combo AND + OR con NAND! Así que lo saqué debajo del diagrama del circuito)
¡Gracias!
Código Ruby para aplicar fuerza bruta a los valores de los componentes NE555 más cercanos:
require "pp"
capacitor = [1, 1.5, 2.2, 3.3, 4.7, 6.8]
resistor = [10, 11, 12, 13, 15, 16, 18, 20, 22, 24, 27, 30, 33, 36, 39, 43, 47, 51, 56, 62, 68, 75, 82, 91]
powers = [0.001, 0.1, 1, 10, 100, 1_000, 10_000, 100_000, 1_000_000]
target = 3600
tolerance = 1
best = []
ln2 = Math.log(2)
powers.each do |c_p|
capacitor.each do |c_v|
c = c_v * c_p
powers.each do |r1_p|
resistor.each do |r1_v|
r1 = r1_v * r1_p
powers.each do |r2_p|
resistor.each do |r2_v|
r2 = r2_v * r2_p
value = ln2 * c * (r1 + 2*r2)
proximity = (target - value).abs
if proximity <= tolerance
best.push(
proximity: proximity,
value: value,
c: c,
r1: r1,
r2: r2
)
end
end
end
end
end
end
end
best.sort! do |a, b|
a[:proximity] <=> b[:proximity]
end
pp best.take(5)
Algunos comentarios para empezar: -
barry
dan laks
david tweed
JP.
Andy alias
pedro bennett
Campos EM
Andy alias