• 【Arduino24】8*8点阵实验


    硬件准备

    8*8点阵:1个

    旋钮电位器:1个

    面包板:1块

    杜邦线:若干

    硬件连线

    软件程序

    1. //定义引脚
    2. #define xKnob_pin A0 //x轴旋钮的引脚
    3. #define yKnob_pin A1 //y轴旋钮的引脚
    4. const int row_pin[8] = { 6, 11, 10, 3, 17, 4, 8, 9 }; // 行引脚对应的数组
    5. const int col_pin[8] = { 2, 7, 19, 5, 13, 18, 12, 16 }; // 列引脚对应的数组
    6. int pixels[8][8]; // 点阵对应的数组
    7. //定义变量
    8. unsigned int x_val = -1;//x轴变量
    9. unsigned int y_val = -1;
    10. //函数声明
    11. void Init();
    12. void display();
    13. void test();
    14. void setup() {
    15. Serial.begin(9600);
    16. for (int thisRow = 0; thisRow < 8; thisRow++) {
    17. pinMode(row_pin[thisRow], OUTPUT); //设置行引脚为输出模式
    18. digitalWrite(row_pin[thisRow], LOW); //行引脚输出低电平
    19. }
    20. for (int thisCol = 0; thisCol < 8; thisCol++) {
    21. pinMode(col_pin[thisCol], OUTPUT); //设置列引脚为输出模式
    22. digitalWrite(col_pin[thisCol], HIGH); //列引脚输出高电平
    23. }
    24. }
    25. void loop() {
    26. Init();
    27. display();
    28. //test();
    29. }
    30. void Init(){
    31. for (int thisRow = 0; thisRow < 8; thisRow++) {
    32. digitalWrite(row_pin[thisRow], LOW); //行引脚输出低电平
    33. }
    34. for (int thisCol = 0; thisCol < 8; thisCol++) {
    35. digitalWrite(col_pin[thisCol], HIGH); //列引脚输出高电平
    36. }
    37. }
    38. void display(){
    39. //读取旋钮模拟值,映射为0~7
    40. x_val = map(analogRead(xKnob_pin),0,1023,0,7);
    41. y_val = map(analogRead(yKnob_pin),0,1023,0,7);
    42. Serial.print("x ");
    43. Serial.println(x_val);
    44. Serial.print("y ");
    45. Serial.println(y_val);
    46. //根据模拟值决定哪行哪列亮
    47. digitalWrite(col_pin[y_val], LOW);
    48. digitalWrite(row_pin[x_val], HIGH);
    49. }
    50. void test() {
    51. for (int thisCol = 0; thisCol < 8; thisCol++) {
    52. digitalWrite(col_pin[thisCol], LOW); //列引脚输出低电平
    53. for (int thisRow = 0; thisRow < 8; thisRow++) {
    54. digitalWrite(row_pin[thisRow], HIGH);
    55. delay(500);
    56. digitalWrite(row_pin[thisRow], LOW);
    57. }
    58. digitalWrite(col_pin[thisCol], HIGH); //列引脚输出高电平
    59. }
    60. }

    产品展示视频

    【Arduino24】88点阵

    总结

    通过本次实验,我学会了8*8点阵的使用,并复习了旋钮电位器的知识。

  • 相关阅读:
    基于bert_bilstm_crf的命名实体识别
    WPF中的绑定知识详解(含案例源码分享)
    Yolo V4详解
    3-3数据链路层-介质访问控制
    Picnic master project interview
    day-3-4-2
    【软考 系统架构设计师】计算机组成与体系结构⑥ 流水线
    JupyterLab使用指南(四):JupyterLab的Magic 命令
    Linux 基础
    基于YOLOv3的口罩佩戴检测
  • 原文地址:https://blog.csdn.net/m0_65960610/article/details/132720279