查看: 6244|回复: 1
打印 上一主题 下一主题

[项目] 【翻译】Arduino纸张控制器(按钮+滑块)

[复制链接]
  • TA的每日心情
    慵懒
    2025-3-19 15:38
  • 签到天数: 231 天

    连续签到: 1 天

    [LV.7]常住居民III

    跳转到指定楼层
    楼主
    发表于 2018-11-20 19:29:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    分享到:
    本帖最后由 az158 于 2018-11-20 20:34 编辑

    原文:Arduino Paper Controller (Buttons + Slider)


    该项目允许你绘制自己的控制器以用于任何地方。它利用电容感应和石墨的导电性的原理。


    在这个项目中使用的东西
    硬件部分
    Arduino UNO & Genuino UNO ×1
    鳄鱼夹 ×1
    面包板 ×1
    公/母跳线 ×1
    电阻10M欧姆 ×3
    电阻330欧姆 ×2
    软件应用程序和在线服务
    Arduino IDE

    我的网站上查看这个项目!


    该项目允许你绘制自己的控制器以用于任何地方。它利用电容式传感和石墨的导电特性,将数据发送到Arduino板。


    物料
    • 鳄鱼夹
    • Arduino
    • 面包板
    • 跳线
    • 10M欧姆电阻(x3)
    • 铅笔
    • 伺服电机
    • LED(x2)
    • LED电阻器(通常为220欧姆)(x2)

    第1步:绘制控制器

    绘制控制器

    你真的要在一张纸上画出你的控制器:

    • 一定要用铅笔(石墨是导电的)
    • 制作一些按钮,可以是一两个滑块。
    • 一定要画一条通向纸张边缘的线,为鳄鱼夹提供空间
    • 尽可能涂黑

    第2步:制作电路

    测试滑块

    电路原理图

    我忘了画两个led的限流电阻(假装它们在地和led阳极之间)。右边的三个黑框代笔通向纸张的鳄鱼夹。(最上面那个是滑块,另外两个是按钮。)


    第3步:安装库

    该项目的代码需要一个用于电容式传感的库。在这里下载:https://playground.arduino.cc/Main/CapacitiveSensor?from=Main.CapSense

    根据该库的Arduino页面说明,“电容式传感器库将两个或更多Arduino引脚模拟为电容传感器,可以感应人体的电容。所有传感器都需要一个中到高值的电阻器和一段电线和一小块(大)铝箔片。在调节到最敏感的情况下,传感器可以感应距离传感器一英寸远的手或身体”。


    第4步:上传代码
    1. #include <Servo.h>
    2. #include <CapacitiveSensor.h>
    3. Servo myservo;
    4. CapacitiveSensor   button1 = CapacitiveSensor(4, 2);
    5. CapacitiveSensor   button2 = CapacitiveSensor(4, 3);
    6. CapacitiveSensor   slider = CapacitiveSensor(4, 5);
    7. int total1val = 1000;//you'll need to edit these
    8. int total2val = 1000;
    9. int total3val1 = 100;
    10. int total3val2 = 1000;
    11. void setup() {
    12. //button1.set_CS_AutocaL_Millis(0xFFFFFFFF);
    13. Serial.begin(9600);
    14. pinMode(10, OUTPUT);
    15. pinMode(13, OUTPUT);
    16. myservo.attach(6);
    17. }
    18. void loop() {
    19. long start = millis();
    20. long total1 =  button1.capacitiveSensor(1000);
    21. long total2 =  button2.capacitiveSensor(1000);
    22. long total = 0;
    23. long total3 = 0;
    24. for (int i = 1; i <= 10; i++) {//averages the value for the slide to make the servo smoother
    25.    total3 =  slider.capacitiveSensor(10000);
    26.    total = total + total3;
    27.    delay(1);
    28. }
    29. long avg = total / 10;
    30. int angle;
    31. Serial.print(millis() - start);
    32. Serial.print("\t");
    33. Serial.print(avg);
    34. Serial.print("\t");
    35. Serial.print(total2);
    36. Serial.print("\t");
    37. Serial.println(total3);
    38. if (total1 > total1val) {
    39.    digitalWrite(13, HIGH);
    40. }
    41. else {
    42.    digitalWrite(13, LOW);
    43. }
    44. if (total2 > total2val) {
    45.    digitalWrite(10, HIGH);
    46. }
    47. else {
    48.    digitalWrite(10, LOW);
    49. }
    50. angle = map(avg, total3val1, total3val2, 180, 0);
    51. myservo.write(angle);
    52. delay(10);
    53. }
    复制代码

    你可能需要修改带有“//you'll need to edit these”注释的语句,来调整有关的值:

    • 打开串口监视器用来观察值
    • 看看“低”和“高”的值(当你接触或者不接触按钮时)
    • 调整代码中的值,直到一切正常(当按下按钮时LED应该打开,伺服电机应该按滑块状态转动)

    原理图

    代码
    code.zip (682 Bytes, 下载次数: 4)
    回复

    举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 1/5 下一条

    有奖活动|英飞凌智能座舱直播活动
    3月12日,英飞凌将携手大联大品佳集团,从行业痛点出发,结合最新技术发展,深入解析智能座舱的技术革新与未来趋势,现场还会有嘉宾为您提供一对一答疑服务。无论您是科技爱好者、工程师,还是投资者与行业分析师,这场直播都将为您揭开智能座舱的核心技术密码!

    查看 »



    手机版|小黑屋|与非网

    GMT+8, 2025-4-29 19:04 , Processed in 0.125799 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.5

    Copyright © 2001-2024, Tencent Cloud.