天天看點

.Net Micro Framework研究—MF驅動繼電器

年前張欣有一個比較好的想法,想用Digi的MF闆驅動一個小型繼電器,這樣就可以用MF直接控制家中的小功率220V的電器了。由于我們公司非純軟體公司,軟硬體部門都有,是以比張欣多了點接觸硬體的機會。

Digi開發闆标準電壓是3.3V,是以繼電器的工作電壓要小于或等于3.3V,此外繼電器吸合點要能承受220V,1~3A的電流,否則實用價值不大。最終我選擇的繼電器的型号為:HUIKE HK4100F-DC3V-SHG 觸點名額:交流220V 3A 直流30V 3A。

.Net Micro Framework研究—MF驅動繼電器

先看一看Digi開發闆的原理圖,看看怎麼接入我們的繼電器。  

CR14 是一個LED燈,R23是一個限流電阻,對應的GPIO的Pin值為6,我們就對它下手。原理圖很簡單,從圖上看出我們必須去掉CR14 LED燈,如果繼電器直接連接配接到接線柱上,則繼電器和CR14 LED燈并聯,LED燈會分流。此外不短接電阻,則電阻會分壓(繼電器和電阻是串聯關系)。好了我們改造後的闆子如下:

.Net Micro Framework研究—MF驅動繼電器
.Net Micro Framework研究—MF驅動繼電器
程式很簡單,如下:

namespace DigiTest
{
    using System;
    using System.Collections;
    using System.Net;
    using System.Net.Sockets;
    using System.Runtime.CompilerServices;
    using System.Text;
    using System.Threading;
    using Microsoft.SPOT;
    using Microsoft.SPOT.Hardware;
    using Microsoft.SPOT.Net;
    using Microsoft.SPOT.Net.NetworkInformation;
 
    public class DigiTest
    {
        public static void Main()
        {
            OutputPort[] output = new OutputPort[5];
            //InputPort[] input = new InputPort[5];
            Cpu.Pin[] pin = new Cpu.Pin[5] { (Cpu.Pin)0, (Cpu.Pin)1, (Cpu.Pin)2, (Cpu.Pin)5, (Cpu.Pin)6 };
 
            for (int i = 0; i < 5; i++)
            {
                //input[i] = new InputPort(pin[i], false, Port.ResistorMode.PullUp);
                output[i] = new OutputPort(pin[i], false);
            }
            while (true)
            {
                for (int i = 0; i < 5; i++)
                {
                    output[i].Write(!output[i].Read());
                }
                //Debug.Print(input[0].Read().ToString() + " " + input[1].Read().ToString() + " " + input[2].Read().ToString() + " " + input[3].Read().ToString() + " " + input[4].Read().ToString());
                Thread.Sleep(1000);
            }
        }
    }
}           

把程式部署到Digi開發闆,運作一下,是不是聽到繼電器在啪啪作響,用萬用表量一量常開觸電是否通斷正常?我想如果沒出什麼意外,一切正常,下一步你就可以控制家用電器了。

繼續閱讀