欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1258|回復: 5
打印 上一主題 下一主題
收起左側

AC220交流電采集電路原理圖

[復制鏈接]
跳轉到指定樓層
樓主
AC220交流電采集方案
交流電峰值311除以220=1.41伏
最大值為1.4伏,有效值為1.4除以根號2等于0.997伏


220*2*1.414=622.16 v VPK-PK:
660V是峰峰值。
220V是有效值。 最大值和最小值之間的就是峰峰值PK-PK表示。
峰峰值的一半就是峰值用PK表示。
只有對稱的波形才有峰峰值。 VPK-PK=2*1.4*vrms
最大值是有效值的根號2倍。



以上電路圖的pdf格式: AC220交流電采集方案.pdf (286.6 KB, 下載次數: 0)

評分

參與人數 2黑幣 +80 收起 理由
wpppmlah + 30 很給力!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:106060 發表于 2025-6-30 21:38 | 只看該作者
能說說電路的原理嗎?
回復

使用道具 舉報

板凳
ID:373684 發表于 2025-6-30 23:11 來自觸屏版 | 只看該作者
萬一其中一個電阻燒了,會不會把人給電到的
回復

使用道具 舉報

地板
ID:106060 發表于 2025-8-31 10:45 | 只看該作者
cr8526 發表于 2025-6-30 23:11
萬一其中一個電阻燒了,會不會把人給電到的

存在這個隱患。所以我最終采用了電壓互感器和電流互感器的方式來采樣。
回復

使用道具 舉報

5#
ID:235691 發表于 2025-8-31 15:49 | 只看該作者
#define SAMPLE_RATE   500  // 每500us采樣一次(2kHz)

u16 adc_samples[40];       // 采樣緩沖區(20ms/500us=40個樣本)
u8 sample_index = 0;
u32 sample_sum = 0;        // 采樣總和
u8 full_window = 0;        // 窗口是否填滿標志
// 全局變量用于平滑濾波
#define FILTER_SHIFT 5  // 使用5位右移實現1/32系數

// 定時器1中斷(500us周期)
void Timer1_ISR(void) interrupt 3
{
    static uint adc_timer = 0;
   
    uint raw_adc;
    uint filtered_adc = 0;  // 濾波后的ADC值(累加形式)
    u16 raw_value;

    // ====== 校準完成處理 ======
    if (cal_ok_display) {
        cal_ok_counter++;
        if (cal_ok_counter >= 2000) { // 2000 * 500us = 1秒
            cal_ok_display = 0;
            in_calibration = 0; // 退出校準模式
        }
    }

    // 顯示刷新
    Display();

    // ADC采樣控制
    if(++adc_timer >= (SAMPLE_RATE/500)) {
        adc_timer = 0;
        
        // 啟動ADC轉換
        ADC_RES = 0;
        ADC_RESL = 0;
        ADC_CONTR = (ADC_CONTR & 0xF0) | 0x40 | 11; // 通道11
    }
   
    // 讀取上次ADC結果
    if(ADC_CONTR & 0x20) {
        raw_adc = ((ADC_RES & 0x03) << 8) | ADC_RESL;
        ADC_CONTR &= ~0x20;

        // 滑動窗口處理
        if(full_window) {
            sample_sum -= adc_samples[sample_index];
        }
        sample_sum += raw_adc;
        adc_samples[sample_index] = raw_adc;
        
        if(++sample_index >= sizeof(adc_samples)/sizeof(adc_samples[0])) {
            sample_index = 0;
            full_window = 1;
        }
        
        // 當窗口滿時計算平均值
        if(sample_index == 0 && full_window) {
            u16 avg = sample_sum / 40; // 40個樣本平均
            raw_avg = avg; // 保存原始平均值用于校準
            
            // 原始ADC值轉換 (0-1023 -> 0-250)
            raw_value = (u16)((unsigned long)avg * calibration / 1023);
            
            /********** IIR低通濾波 **********/
            if (filtered_adc == 0) {
                filtered_adc = (uint)raw_value << FILTER_SHIFT;
            } else {
                filtered_adc = filtered_adc - (filtered_adc >> FILTER_SHIFT) + raw_value;
            }
            // 獲取濾波后的值并四舍五入
            pv_value = (filtered_adc + (1 << (FILTER_SHIFT-1))) >> FILTER_SHIFT;
        }
    }            
}
// ====== 校準相關變量 ======
bit is_calibrated = 0;    // 校準標志位 0-未校準 1-已校準
bit in_calibration = 0;   // 校準模式標志
bit cal_ok_display = 0;   // 顯示OK標志
uint cal_ok_counter = 0;  // OK顯示計數器
uint raw_avg = 0;         // 原始ADC平均值(0-1023)
uint calibration = 250;   // 校準系數
// ====== 校準模式按鍵處理 ======
    if (in_calibration && !cal_ok_display) {
        // KEY4: 確認校準
        if(key_pressed[3]) {
            key_pressed[3] = 0; // 清除按鍵標志
            
            // 執行校準計算
            if (raw_avg != 0) {
                calibration = (220 * 1023UL) / raw_avg;
                is_calibrated = 1;  // 設置校準標志
                cal_ok_display = 1; // 顯示OK
                cal_ok_counter = 0; // 重置計數器  
            
            }
        }
    }

交流取樣.PNG (19.94 KB, 下載次數: 0)

交流取樣.PNG
回復

使用道具 舉報

6#
ID:1128898 發表于 2025-9-1 02:40 | 只看該作者
很給力!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表