那曲檬骨新材料有限公司

    電子發燒友App

    硬聲App

    0
    • 聊天消息
    • 系統消息
    • 評論與回復
    登錄后你可以
    • 下載海量資料
    • 學習在線課程
    • 觀看技術視頻
    • 寫文章/發帖/加入社區
    會員中心
    創作中心

    完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

    3天內不再提示
    電子發燒友網>電子資料下載>電子資料>使用MCP3008模數轉換器將Pi2連接到三個模擬組件

    使用MCP3008模數轉換器將Pi2連接到三個模擬組件

    2022-12-23 | zip | 0.07 MB | 次下載 | 免費

    資料介紹

    描述

    在這個項目中,我們將在 Raspberry Pi 2 組件上使用適用于 Windows 10 IoT Core 的 Adafruit Starter Pack來制作說話光傳感器這將展示如何使用 MCP3008 模數轉換器 (ADC) 芯片將 Pi2 連接到三個模擬組件。兩個可變電阻器電位器)和一個 CdS 光電管。

    硬件設置

    按照下面的 Fritzing 圖將 Raspberry Pi2 連接到面包板和其他組件。 ?

    注意:設置電路時,請確保 MCP3008 芯片的方向正確。該芯片有一個半月形標記,一側有一個點。其方向應如下圖所示。

    選修的

    如果您有一對帶 1/8" 插孔的耳機或一組帶 1/8" 插孔的有源揚聲器,您可以將它們連接到 Pi2 音頻輸出插孔以聽到語音系統的提示。

    代碼

    主頁.cs

    您可以從https://github.com/ms-iot/adafruitsample下載代碼啟動項目??,我們將引導您完成添加與 Web 服務對話并在地圖上獲取您的 pin 所需的代碼。什么地圖?

    打開“Lesson_204\StartSolution\Lesson_204.sln ?并打開 mainpage.xaml.cs 文件。?

    我們已經填寫了一些方法作為您在此解決方案中的起點。如果你想跳到前面,你可以在以下位置找到所有代碼已完成的解決方案:“Lesson_204\FullSolution\Lesson_204.sln”

    ?

    在 MainPage 類的頂部添加以下行。

     
              ReferenceVoltage =  ;
    
            
              LowPotentiometerADCChannel =  ;
              HighPotentiometerADCChannel =  ;
             CDSADCChannel =  ;
    
            
              JustRightLightString =  ;
              LowLightString =  ;
              HighLightString =  ;
    
            
             eState { unknown, JustRight, TooBright, TooDark};
            eState CurrentState = eState.unknown;
    
            
            MCP3008 mcp3008 =  MCP3008(ReferenceVoltage);
    
            
             SpeechSynthesizer 合成器;
    
            
            定時器定時器;
    

    ?

    現在將這些行添加到 MainPage 構造函數以設置 Windows 語音合成器和 ADC 芯片。

    // 創建一個的SpeechSynthesizer供以后使用。
     合成器=語音合成器();
    
     // 初始化ADC芯片以供使用
     mcp3008.初始化();
    

    ?

    現在將這些行添加到 OnNavigatedTo 方法。這將設置一個計時器回調,它將在不同的線程上每秒調用一次我們的代碼。

    如果您不想在地圖上添加圖釘,請刪除MakePinWebAPICall();??

     override void OnNavigatedTo(NavigationEventArgs navArgs)
            {
                Debug.WriteLine(  );
    
                MakePinWebAPICall();
                // 我們將每秒
                timer =  Timer(timerCallback, this, 0, 1000);
            }
    

    ?

    現在我們調用了計時器回調,讓我們填寫它。

     異步 timerCallback(對象狀態)
            {
                調試。 (  );
                (mcp3008 == )
                {
                    調試。 (  );
                    ;
                }
    
                
                eState newState = eState.JustRight;
    
                
                 lowPotReadVal = mcp3008.ReadADC(LowPotentiometerADCChannel);
                 highPotReadVal = mcp3008.ReadADC(HighPotentiometerADCChannel);
                 cdsReadVal = mcp3008.ReadADC(CDSADCChannel);
    
                
                 lowPotVoltage = mcp3008.ADCToVoltage(lowPotReadVal);
                 highPotVoltage = mcp3008.ADCToVoltage(highPotReadVal);
                cdsVoltage = mcp3008.ADCToVoltage(cdsReadVal);
    
                
                調試。 (String.Format(  ,
                     lowPotReadVal, highPotReadVal, cdsReadVal));
                調試。 (String.Format(  ,
                     lowPotVoltage, highPotVoltage, cdsVoltage));
    
                
                 (cdsVoltage < lowPotVoltage)
                {
                    newState = eState.TooDark;
                }
    
                
                (cdsVoltage > highPotVoltage)
                {
                    newState = eState.TooBright;
                }
    
                
                等待 CheckForStateChange(newState);
            }
    

    ?

    我們已經為您填寫了大部分 CheckForStateChange 代碼,但您想要添加對 TextToSpeech 幫助程序方法的調用。

    
    等待

    ?

    現在是語音 API 的有趣部分,讓它說話!修改 TextToSpeech 方法并添加這些行。

    異步 
     {
         SpeechSynthesisStream 合成流;
    
         
         
         synthesisStream = 等待合成器。 ;
    
         
         media.AutoPlay =  ;
         媒體。 ;
         媒體。 ;
    }
    

    ?

    MCP3008.cs

    這是將包裝 ADC 功能的類。

    首先,我們將在構建新對象時存儲參考電壓值。

    公共 
    {
        調試。 ;
    
        
        參考電壓 = 參考電壓;
    }
    

    ?

    然后我們將填寫 Initialize 方法以設置與 SPI 總線控制器的通信

    
    {
        
         settings =  SpiConnectionSettings(SPI_CHIP_SELECT_LINE);
        
        設置下的額定速度。ClockFrequency =  ;                              
        settings.Mode = SpiMode.Mode0;
    
        
    
        
        aqs = SpiDevice.GetDeviceSelector();
    
        
         dis =  DeviceInformation.FindAllAsync(aqs);
    
         
        mcp3008 =  SpiDevice.FromIdAsync(dis[  ].Id, settings);     
    
        (mcp3008 == )
        {
            調試.WriteLine(
                ,
                dis[  ].Id);
            ;
        }
    
    }
    (例外 e)
    {
        Debug.WriteLine(  + e.Message +  + e.StackTrace);
        ;
    }
    

    ?

    現在我們將填寫 ReadADC 方法以實際從 MCP3008 芯片讀取一個值。

      ReadADC(byte whichChannel)
    {
        字節命令 = whichChannel;
        命令 |= MCP3008_SingleEnded;
        命令 <<=  ;
    
        byte[] commandBuf = new byte[] {  , 命令,  };
    
        byte[] readBuf = new byte[] {  ,  ,  };
    
        mcp3008.TransferFullDuplex(commandBuf, readBuf);
    
         sample = readBuf[  ] + ((readBuf[  ] &  ) <<  );
         s2 = 樣本 &  ;
        調試斷言(示例== s2);
        樣品;
    }

    ?

    最后添加一個輔助方法,用于將返回的 ADC 值(以單位為單位)轉換為電壓。

       
      {
         ( )adc * ReferenceVoltage / ( )Max;
     }
    

    ?

    校準

    運行代碼并將面包板放在正常照明的區域。?

    查看輸出窗口,了解 ADC 芯片從兩個電位器和光電池讀取的電壓。

    第一個數字是從低調整罐讀取的值,第二個是高調整罐,第三個是當前在光電池上讀取的值。

     ::
     。_ _  ,  ,  
      

    ?

    轉動低邊界電位器,觀察第一個數字的值變化。調整電位器直到電壓略低于第三個數字的值(至少 0.2 伏)。

    現在轉動高邊界鍋,看第二個數字的值。您希望它比第三個數字的值高一點(同樣至少 0.2 伏)。

    現在已經配置了一個邊界區域,其中的值“恰到好處”。

    手術

    以這種方式設置盆,如果你用手遮住光電管,輸出應該說“我需要一盞燈”,如果你連接了可選的耳機/揚聲器,你應該聽到 Pi2 語音。

    取下你的陰影會使它變成“啊,剛剛好”(和語音)。

    將一盞燈照在傳感器上會變成“我需要戴墨鏡”(再次講話)。

     ::timerCallback
     
      ,  .  ,  
     ::TextToSpeech 啊,剛剛好
    
     ::timerCallback
     
      ,  .  ,  
     ::TextToSpeech 我需要一盞燈
    
     ::timerCallback
     
      ,  .  ,  
     ::TextToSpeech 我需要戴墨鏡

    ?


    下載該資料的人也在下載 下載該資料的人還在閱讀
    更多 >

    評論

    查看更多

    下載排行

    本周

    1. 1山景DSP芯片AP8248A2數據手冊
    2. 1.06 MB  |  532次下載  |  免費
    3. 2RK3399完整板原理圖(支持平板,盒子VR)
    4. 3.28 MB  |  339次下載  |  免費
    5. 3TC358743XBG評估板參考手冊
    6. 1.36 MB  |  330次下載  |  免費
    7. 4DFM軟件使用教程
    8. 0.84 MB  |  295次下載  |  免費
    9. 5元宇宙深度解析—未來的未來-風口還是泡沫
    10. 6.40 MB  |  227次下載  |  免費
    11. 6迪文DGUS開發指南
    12. 31.67 MB  |  194次下載  |  免費
    13. 7元宇宙底層硬件系列報告
    14. 13.42 MB  |  182次下載  |  免費
    15. 8FP5207XR-G1中文應用手冊
    16. 1.09 MB  |  178次下載  |  免費

    本月

    1. 1OrCAD10.5下載OrCAD10.5中文版軟件
    2. 0.00 MB  |  234315次下載  |  免費
    3. 2555集成電路應用800例(新編版)
    4. 0.00 MB  |  33566次下載  |  免費
    5. 3接口電路圖大全
    6. 未知  |  30323次下載  |  免費
    7. 4開關電源設計實例指南
    8. 未知  |  21549次下載  |  免費
    9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
    10. 0.00 MB  |  15349次下載  |  免費
    11. 6數字電路基礎pdf(下載)
    12. 未知  |  13750次下載  |  免費
    13. 7電子制作實例集錦 下載
    14. 未知  |  8113次下載  |  免費
    15. 8《LED驅動電路設計》 溫德爾著
    16. 0.00 MB  |  6656次下載  |  免費

    總榜

    1. 1matlab軟件下載入口
    2. 未知  |  935054次下載  |  免費
    3. 2protel99se軟件下載(可英文版轉中文版)
    4. 78.1 MB  |  537798次下載  |  免費
    5. 3MATLAB 7.1 下載 (含軟件介紹)
    6. 未知  |  420027次下載  |  免費
    7. 4OrCAD10.5下載OrCAD10.5中文版軟件
    8. 0.00 MB  |  234315次下載  |  免費
    9. 5Altium DXP2002下載入口
    10. 未知  |  233046次下載  |  免費
    11. 6電路仿真軟件multisim 10.0免費下載
    12. 340992  |  191187次下載  |  免費
    13. 7十天學會AVR單片機與C語言視頻教程 下載
    14. 158M  |  183279次下載  |  免費
    15. 8proe5.0野火版下載(中文版免費下載)
    16. 未知  |  138040次下載  |  免費
    百家乐扑克桌| 百家乐官网娱乐城玩法| 娱乐城百家乐打不开| 皇冠网888799| 百家乐最稳妥的打法| 定陶县| 百家乐真人娱乐注册| 泰顺县| 大杀器百家乐学院| 百家乐官网厅| 大发888游戏网页版| 百家乐官网打鱼秘籍| 大发888手机版| 新澳门百家乐官网的玩法技巧和规则 | 百家乐官网博彩通网| scc太阳城俱乐部| 手机百家乐官网能兑换现金棋牌游戏| 威尔斯人线上娱乐| 百家乐桌折叠| 百家乐官网鞋业| 新全讯网网址xb112| 百家乐官网b28博你发v| 响水县| 速博百家乐的玩法技巧和规则 | 赢家百家乐官网的玩法技巧和规则| 广州百家乐官网筹码| 申博娱乐城开户| 蓝盾百家乐打法| 新利| 百家乐的分析| 百家乐官网连锁| 大姚县| 新全讯网22335555| 做生意选店铺位置| 百家乐官网美女视频聊天| 大发888娱乐城下载平台| 百家乐网投注| 百家乐官网哪家赌安全| 真人轮盘| 大发8888娱乐城 真钱| 缅甸百家乐博彩真假|