Arduino示例代碼講解:Row-Column Scanning an 8x8 LED matrix with X-Y input LED矩陣

Arduino示例代碼講解:Row-Column Scanning an 8x8 LED matrix with X-Y input LED矩陣

  • Row-Column Scanning an 8x8 LED matrix with X-Y input LED矩陣
    • 功能概述
        • 硬件部分:
        • 軟件部分:
    • 代碼逐行解釋
        • 定義常量
        • 定義變量
        • `setup()` 函數
        • `loop()` 函數
        • `readSensors()` 函數
        • `refreshScreen()` 函數
    • 工作原理

Row-Column Scanning an 8x8 LED matrix with X-Y input LED矩陣

這段代碼是一個Arduino示例程序,用于通過行-列掃描控制一個8x8的LED矩陣。它使用兩個模擬輸入(例如電位器)來控制光標的位置,并在LED矩陣上顯示光標的位置。

/*Row-Column Scanning an 8x8 LED matrix with X-Y inputThis example controls an 8x8 LED matrix using two analog inputscreated 27 May 2009modified 30 Aug 2011by Tom IgoeThis example works for the Lumex  LDM-24488NI Matrix. Seehttp://sigma.octopart.com/140413/datasheet/Lumex-LDM-24488NI.pdffor the pin connectionsFor other LED cathode column matrixes, you should only need to changethe pin numbers in the row[] and column[] arraysrows are the anodescols are the cathodes---------Pin numbers:Matrix:* Digital pins 2 through 13,* analog pins 2 through 5 used as digital 16 through 19Potentiometers:* center pins are attached to analog pins 0 and 1, respectively* side pins attached to +5V and ground, respectively.This example code is in the public domain.http://www.arduino.cc/en/Tutorial/RowColumnScanningsee also http://www.tigoe.net/pcomp/code/category/arduinowiring/514 for more*/// 2-dimensional array of row pin numbers:
const int row[8] = {2, 7, 19, 5, 13, 18, 12, 16
};// 2-dimensional array of column pin numbers:
const int col[8] = {6, 11, 10, 3, 17, 4, 8, 9
};// 2-dimensional array of pixels:
int pixels[8][8];// cursor position:
int x = 5;
int y = 5;void setup() {// initialize the I/O pins as outputs// iterate over the pins:for (int thisPin = 0; thisPin < 8; thisPin++) {// initialize the output pins:pinMode(col[thisPin], OUTPUT);pinMode(row[thisPin], OUTPUT);// take the col pins (i.e. the cathodes) high to ensure that// the LEDS are off:digitalWrite(col[thisPin], HIGH);}// initialize the pixel matrix:f

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/74869.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/74869.shtml
英文地址,請注明出處:http://en.pswp.cn/web/74869.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

多線程編程中的鎖策略

目錄 1.悲觀鎖vs樂觀鎖 關鍵總結 悲觀鎖&#xff1a; 樂觀鎖&#xff1a; 選擇建議 用 悲觀鎖 當&#xff1a; 用 樂觀鎖 當&#xff1a; 2.重量級鎖vs輕量級鎖 選擇建議 用 輕量級鎖&#xff1a; 用 重量級鎖&#xff1a; 3.掛起等待鎖vs自旋鎖 關鍵細節說明 選擇…

負載均衡是什么,Kubernetes如何自動實現負載均衡

負載均衡是什么&#xff1f; 負載均衡&#xff08;Load Balancing&#xff09; 是一種網絡技術&#xff0c;用于將網絡流量&#xff08;如 HTTP 請求、TCP 連接等&#xff09;分發到多個服務器或服務實例上&#xff0c;以避免單個服務器過載&#xff0c;提高系統的可用性、可擴…

React-01React創建第一個項目(npm install -g create-react-app)

1. React特點 JSX是javaScript語法的擴展&#xff0c;React開發不一定使用JSX。單向響應的數據流&#xff0c;React實現單向數據流&#xff0c;減少重復代碼&#xff0c;比傳統數據綁定更簡單。等等 JSX是js的語法擴展&#xff0c;允許在js中編寫類似HTML的代碼 const …

小程序中的網絡請求

在小程序中&#xff0c;使用 wx.request( ) 這個方法來發送網路請求&#xff0c;整個請求的方式和 jQuery 里面的 $.ajax 方法是非常相似的。 在 wx.request( ) 這個方法中&#xff0c;接收一個配置對象&#xff0c;該配置對象中能夠配置的項目如下表&#xff1a; 關于服務器…

jvm 的attach 和agent機制

Java 的 Attach 和 Agent 機制在實際應用中得到了廣泛的成功應用&#xff0c;尤其是在監控、調試、性能分析、故障排查等方面。以下是這兩種機制在實際場景中的一些成功應用案例&#xff1a; 1. 性能監控與分析 Java Agent 和 Attach 機制廣泛應用于性能監控和分析&#xff0…

基于SpringBoot的“留守兒童網站”的設計與實現(源碼+數據庫+文檔+PPT)

基于SpringBoot的“留守兒童網站”的設計與實現&#xff08;源碼數據庫文檔PPT) 開發語言&#xff1a;Java 數據庫&#xff1a;MySQL 技術&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系統展示 系統整體功能圖 局部E-R圖 系統首頁界面 系統注冊…

iPhone XR:一代神機,止步于此

什么樣的 iPhone &#xff0c;才配稱為一代神機&#xff1f; 我曾經用過iPhone 4S、iPhone 6S Plus、iPhone 8 Plus&#xff0c;iPhone SE2、iPhone XR、iPhone 13、iPhone 14 Plus、iPhone 15/Pro。 不管硬件再怎么卷&#xff0c;不管囊中是否羞澀&#xff0c;主力機基本沒考…

【VUE】RuoYi-Vue3項目結構的分析

【VUE】RuoYi-Vue3項目結構的分析 1. 項目地址2. RuoYi-Vue3項目結構2.1 整體結構2.2 package.json2.2.1 &#x1f9fe; 基本信息2.2.2 &#x1f527; 腳本命令&#xff08;scripts&#xff09;2.2.3 &#x1f30d; 倉庫信息2.2.4 &#x1f4e6; 項目依賴&#xff08;dependenc…

架構師面試(二十五):分布式存儲 Leader 設計

問題 在非常多的分布式存儲系統中&#xff0c;如&#xff1a;Zookeeper、Etcd、Kafka等&#xff0c;往往會存在一個 【Leader】 角色&#xff0c;并由該角色負責數據的寫入&#xff0c;這樣設計最主要的原因是什么呢&#xff1f; A. 唯一負責數據寫入的 Leader 角色可以避免并…

使用YoloV5和Mediapipe實現——上課玩手機檢測(附完整源碼)

目錄 效果展示 應用場景舉例 1. 課堂或考試監控&#xff08;看到這個學生黨還會愛我嗎&#xff09; 2. 駕駛安全監控&#xff08;防止開車玩手機&#xff09; 3. 企業辦公管理&#xff08;防止工作時間玩手機&#xff09; 4. 監獄、戒毒所、特殊場所安保 5. 家長監管&am…

GPT-4o從語義分割到深度圖生成,大模型狂潮下的計算機視覺:技術進步≠替代危機

隨著上周&#xff0c;GPT-4o原生多模態圖像生成功能的推出&#xff0c;更多玩法也被開發出來。一夜之間&#xff0c;GPT-4o原生多模態能力的釋放&#xff0c;讓圖像生成、語義分割、深度圖構建這些曾需要專業工具鏈支持的復雜任務&#xff0c;變成了普通人輸入一句話就能實現的…

Pytorch 張量操作

在深度學習中&#xff0c;數據的表示和處理是至關重要的。PyTorch 作為一個強大的深度學習框架&#xff0c;其核心數據結構是張量&#xff08;Tensor&#xff09;。張量是一個多維數組&#xff0c;類似于 NumPy 的數組&#xff0c;但具有更強大的功能&#xff0c;尤其是在 GPU …

小程序中跨頁面組件共享數據的實現方法與對比

小程序中跨頁面/組件共享數據的實現方法與對比 在小程序開發中&#xff0c;實現不同頁面或組件之間的數據共享是常見需求。以下是幾種主要實現方式的詳細總結與對比分析&#xff1a; 一、常用數據共享方法 全局變量&#xff08;getApp()&#xff09;、本地緩存&#xff08;w…

vue中的 拖拽

拖拽總結 實現方式特點適用場景HTML5 原生拖拽 API? 直接使用 dataTransfer 進行數據傳輸 ? 兼容性好&#xff08;大部分瀏覽器支持&#xff09; ? 適合簡單的拖拽場景低代碼平臺、表單生成器、組件拖拽Vue/React 組件庫&#xff08;如 Vue Draggable、SortableJS&#xff…

MySQL 函數(入門版)

目錄 一、字符串函數 1、常用的字符串函數 2、函數演示 3、具體案例 二、數值函數 1、常用的數值函數 2、函數演示 3、具體案例 三、日期函數 1、常用的日期函數 2、函數演示 3、具體案例 四、流程函數 1、常用的流程函數 2、函數演示 3、具體案例 在MySQL中&a…

基于快速開發平臺與智能手表的區域心電監測與AI預警系統(源碼+論文+部署講解等)

需要源代碼&#xff0c;演示視頻&#xff0c;ppt設計原稿資料&#xff0c;請文末卡片聯系 !](https://i-blog.csdnimg.cn/direct/242d53cd069940b5b7a6db2bb031d406.png#pic_center)

【神經網絡】python實現神經網絡(三)——正向學習的模擬演練

有了之前的經驗(【神經網絡】python實現神經網絡(二)——正向推理的模擬演練),我們繼續來介紹如何正向訓練神經網絡中的超參(包含權重以及偏置),本章大致的流程圖如下: 一.損失函數 神經網絡以某個指標為基準尋求最優權重參數,而這個指標即可稱之為 “損失函數” 。(…

分區格式變RAW故障深度解析與數據恢復實戰指南?

分區格式變RAW的本質? 當存儲設備&#xff08;如硬盤、U盤或移動硬盤&#xff09;的分區突然顯示為RAW格式時&#xff0c;意味著操作系統無法識別其原有的文件系統結構&#xff08;如NTFS、FAT32等&#xff09;。此時&#xff0c;用戶訪問該分區會提示“需要格式化”或直接顯示…

【QT】Qt5 QtWebEngine使用教程

目錄 1、QtWebEngine相比于QtWebKit的優勢2、項目配置2.1 確認 Qt 版本2.2 在.pro 文件中添加依賴3、顯示網頁4、實現Qt和網頁JavaScript之間的交互4.1 Qt執行網頁的JavaScript代碼4.2 JavaScript調用Qt對象的函數QtWebEngine 是 Qt 框架中用于在應用程序中嵌入 Web 內容的模塊…

網絡安全-等級保護(等保) 1-0 等級保護制度公安部前期發文總結

################################################################################ 等級保護從1994年開始已經有相關文件下發&#xff0c;進行建設&#xff0c;后續今年多年制度完善&#xff0c;現在已進入等保2.0時代&#xff0c;相關政策已運行多年。 前期等保相關發文&…