val = analogRead(A0); 读出A0的值为什么 是负的-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 713|回复: 6

[未解决] val = analogRead(A0); 读出A0的值为什么 是负的

[复制链接]
发表于 2022-2-27 22:32 | 显示全部楼层 |阅读模式
本帖最后由 47okey 于 2022-2-27 22:36 编辑

求教各位老师,代码中有读取光敏电阻的ADC值时为什么 有负值 ?val = analogRead(A0);
360截图20220227222314408.png 360截图20220227222102701.png
这是亮光时的,当遮住光敏电阻 ,读出的值又是正常的。另外,单独一段光敏电阻的代码,只读取A0口值,都正常,说明电路没问题。

 楼主| 发表于 2022-2-27 23:15 | 显示全部楼层
本帖最后由 47okey 于 2022-2-27 23:19 编辑

val = analogRead(A0); //读取A0口的值。环境亮时,量电压是0.8V,遮住光敏电阻,电压0.0几V,但就是有负值 
发表于 2022-2-28 05:57 | 显示全部楼层
很簡單啊,確定電路沒問題,
那就是程式的問題了,啊你
程式又不貼出來,只能靠你
自己找問題了
 楼主| 发表于 2022-2-28 11:17 | 显示全部楼层
shouzama 发表于 2022-2-28 05:57
很簡單啊,確定電路沒問題,
那就是程式的問題了,啊你
程式又不貼出來,只能靠你

我的意思是读出的是0~1023怎么会有负值 。
发表于 2022-2-28 11:27 | 显示全部楼层
val 的类型不对,导致出现了类型转换。

贴代码吧,这么多人指出了
发表于 2022-2-28 19:10 | 显示全部楼层
47okey 发表于 2022-2-28 11:17
我的意思是读出的是0~1023怎么会有负值 。

要看變數宣告及傳輸指令,
當然有可能出現負值,因為
電腦的數值記錄本身並不含
正/負符號(都是正的),當它
認為數值解讀後應代表負數,
就顯示負值了
負數表示法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 13:45 , Processed in 0.081081 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表