Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
Difícil, para esas cosas se necesitaría un inversor. de onda sinusoidal.Saludos para todos...
Quería preguntarles si es muy difícil hacer un inversor al menos para el alumbrado de la casa, el uso de un TV pantalla plana y tal vez un ventilador?
Estas hablando prácticamente de un inversor de 2500w/3000w, y no quiero ser pesimista, pero te saldría mas barato apostar a comprar uno que armarlo. Además de eficiencia y seguridad, tenes economía... Te muestro uno que recomendé a un amigo y se lo instale con un panel de 250W que el tenia de otra oferta.Saludos para todos...
Quería preguntarles si es muy difícil hacer un inversor al menos para el alumbrado de la casa, el uso de un TV pantalla plana y tal vez un ventilador?

Gracias por responder torres, en verdad quería armarlo con un transformador si era posible porque no lo puedo comprar acá en cuba.Estas hablando prácticamente de un inversor de 2500w/3000w, y no quiero ser pesimista, pero te saldría mas barato apostar a comprar uno que armarlo. Además de eficiencia y seguridad, tenes economía... Te muestro uno que recomendé a un amigo y se lo instale con un panel de 250W que el tenia de otra oferta.
Ver el archivo adjunto 336352
Ahora, si quieres hacerlo a toda costa sin importar costes, podrías darte una vuelta por este tema:
Trabajemos para conseguir un inversor DC-AC senoidal
Saludos a todos mirando en el foro me di cuenta que directa e indirectamente hay mucha gente necesitando un inversor DC-AC senoidal quizás para construir una UPS o para controlar un motor de AC etc. Propongo que trabajemos juntos para conseguir un prototipo. tengo alguna información, la...www.forosdeelectronica.com
Y no te cases solo con ese aporte... Buscá e implementa el buscador del foro; Además del inversor, no te olvides que también vas a tener que buscar el regulador de carga![]()
Bueno, ahora te paso unoGracias por responder torres, en verdad quería armarlo con un transformador si era posible porque no lo puedo comprar acá en cuba.
Muchas gracias.Bueno, ahora te paso uno

//=======================SolarDUINO_V2=======================
// ingeniería inversa y correcion al diseño del Inversor:
// DIDIK ROSTYONO 2006
// prof.martintorres@educ.ar - ETI Patagonia
//===========================================================
#include <avr/io.h>
#include <avr/interrupt.h>
#include <math.h>
// --- Mapeo de Pines (Segun Esquematico) ---
#define BTN_START_STOP_PIN 2 // P1.2
#define BAT_SENSE_PIN A0 // P1.7 (ADC input)
#define BUZZER_PIN 6 // P3.4
#define LED_PIN 7 // P3.5
#define SPWM_PIN_A 9 // P3.0 (OC1A - Driver 1)
#define SPWM_PIN_B 10 // P3.1 (OC1B - Driver 2)
// --- Constantes de Control ---
#define LOW_VOLTAGE_ADC 512 // Umbral de bateria baja (Calibrar con potenciómetro: 0=12V, 1023=0V)
#define BEEP_DUR_MS 250
// --- Constantes SPWM (50 Hz) ---
#define SINE_STEPS 200 // Muestras por ciclo completo
#define TIMER1_TOP_VALUE 1023 // TOP para 10-bit Phase Correct PWM
volatile uint16_t sine_table[SINE_STEPS];
volatile uint16_t sine_index = 0;
volatile bool inverter_on = false;
// --- Variables de Tiempo (Millis-based) ---
unsigned long previousMillis = 0;
bool ledState = false;
//===========================================================
// --- Funciones auxiliares ---
void generate_sine_table()
{
for (int i = 0; i < SINE_STEPS; i++) {
sine_table[i] = (uint16_t)(sin(i * 2 * M_PI / SINE_STEPS) * 511.5 + 511.5);
}
}
// Interrupción del Timer1 para actualizar el valor de PWM
ISR(TIMER1_OVF_vect)
{
if (inverter_on)
{
// Actualiza el valor de comparación A y B.
OCR1A = sine_table[sine_index];
OCR1B = sine_table[sine_index];
sine_index++;
if (sine_index >= SINE_STEPS)
{
sine_index = 0;
}
}
}
//===========================================================
void setup()
{
pinMode(BTN_START_STOP_PIN, INPUT_PULLUP);
pinMode(BAT_SENSE_PIN, INPUT);
pinMode(BUZZER_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
pinMode(SPWM_PIN_A, OUTPUT);
pinMode(SPWM_PIN_B, OUTPUT);
digitalWrite(LED_PIN, HIGH); // LED OFF (Lógica inversa)
generate_sine_table();
setup_timer1(); // Configura el hardware del Timer1
}
//===========================================================
void loop()
{
unsigned long currentMillis = millis();
// 1. Lectura de Bateria (ADC ANALOGICO)
int bat_level_adc = analogRead(BAT_SENSE_PIN);
if (bat_level_adc > LOW_VOLTAGE_ADC) // Si el ADC lee un valor alto (voltaje bajo)
{
inverter_on = false;
TCCR1A &= ~((1 << COM1A1) | (1 << COM1B1)); // Desconecta pines 9 y 10
if (currentMillis - previousMillis >= BEEP_DUR_MS)
{
previousMillis = currentMillis;
ledState = !ledState;
digitalWrite(BUZZER_PIN, ledState);
digitalWrite(LED_PIN, !ledState);
}
return;
}
else
{
digitalWrite(BUZZER_PIN, LOW); // Si la bateria esta bien, apaga el buzzer de alarma
}
if (digitalRead(BTN_START_STOP_PIN) == LOW)
{
if (!inverter_on && (currentMillis - previousMillis > 300))
{
inverter_on = true; // Reconecta los pines 9 y 10 al Timer1 (Output Compare Mode)
TCCR1A |= (1 << COM1A1) | (1 << COM1B1) | (1 << COM1B0); // Pin B invertido
previousMillis = currentMillis;
}
else if (inverter_on && (currentMillis - previousMillis > 300))
{
inverter_on = false;
TCCR1A &= ~((1 << COM1A1) | (1 << COM1B1)); // Desconecta pines 9 y 10
previousMillis = currentMillis;
}
}
if (inverter_on)
{
if (currentMillis - previousMillis >= 1000) // Parpadeo lento (1Hz)
{
previousMillis = currentMillis;
ledState = !ledState;
digitalWrite(LED_PIN, ledState ? LOW : HIGH); // Invertir estado del LED
}
}
else
{
digitalWrite(LED_PIN, HIGH); // LED apagado
}
}
//===========================================================
// Configuración del Timer1 para SPWM con Hardware Dead Time (Modo 10 Phase Correct PWM)
void setup_timer1()
{
cli();
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;
ICR1 = TIMER1_TOP_VALUE;
// WGM13=1, WGM12=0, WGM11=1, WGM10=0 => Mode 10: Phase Correct PWM, TOP is ICR1
TCCR1B |= (1 << WGM13);
TCCR1A |= (1 << WGM11);
// Preescalador 8: 16MHz/8 = 2MHz clock for timer
TCCR1B |= (1 << CS11);
// Habilita interrupción por Overflow del Timer1
TIMSK1 |= (1 << TOIE1);
sei();
}
//==========================================================
define LOW_VOLTAGE_ADC 512 // Reemplaza 512 por el valor que mediste
ahi tenia el PCB dibujado del inversor y el regulador PWM, mas el nuevo sketch actualizado... Espero que te sea de ayuda. Saludos