问题标签 [adc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
microcontroller - ADC数字数据输出减1
我一直在 ATmega 32 上的 ADC 项目中工作,我的 ADC 是 10 位分辨率,Vref = 2.56V(从内部信息中我可以得出结论,步长 = 2.56/1024 = 2.5mV
那么,如果输入电压为 2.5 伏,则数字数据输出必须为 2.5V /2.5mV = 1000 = 0b1111101000
我已经编写了该代码并在 proteus 中进行了模拟,但是当输入电压为 2.5V 时,输出为 999(十进制)= 0b1111100111 而不是 1000 为什么??!!
注:数字数据输出调整正确
那是我的代码:
包括
这是proteus模拟的输出
vhdl - 两个 Spartan 3E 之间的数据传输
我正在尝试使用两个单独的 Spartan 3E 套件进行 ADC-DAC。第一个套件将获得模拟信号并将其转换为数字信号。第二个套件将获取转换后的数字数据并再次将其转换为模拟数据。我成功地分别实现了 ADC 和 DAC,但是如何将 14 位数字数据从第一个套件发送到另一个套件?(我需要时钟同步吗?)
external - 如何读取外部传感器
我是Contiki World的初学者。我正在使用 TmoteSky 微尘。我可以读取内部传感器,但我没有找到任何关于如何读取 ADC 端口(引脚扩展)以使用外部传感器的信息或示例。(光、温度和湿度)。
我找不到任何相关信息。
arduino - 如何在 Arduino 中打开所有 ADC
我正在研究 Arduino UNO。我被困在需要打开其上的 ADC 引脚的地方。请帮帮我,我是 Arduino 新手。
microcontroller - ADC 触发时的 PIC 唤醒
我正在使用 PIC24F16KA101 读取 ADC。Adc 信号将随机出现,因此我将 MCU 置于睡眠模式。我喜欢在信号超过阈值时唤醒单片机。当我用谷歌搜索这个时,我发现了很多与此相关的主题,但我想在这个问题上得到澄清。我找到了一些解决这个问题的方法,但我想要一个功耗最小的解决方案。
以最大频率采样 ADC(因为信号是随机的高频脉冲)。在 MCU 唤醒时使用基于系统时钟的 Adc 时钟(我使用 32MHz FRCPLL),并在它进入睡眠状态之前更改为 ADRC 内部时钟,以便 adc 将在睡眠模式下进行采样。这样,我希望,当阈值较高时,我可以唤醒模块(通过设置 ADC 中断优先级大于 CPU 优先级)。但为此,我必须使用 adc 不断采样。
向比较器模块提供相同的 Adc 输入,并使 MCU 在不处理时进入睡眠模式并关闭 adc。当输入高于比较器阈值时,模块可以唤醒并启动 adc。我认为,在这种情况下,比较器将在睡眠模式下工作。但我担心我可能会错过一些重要的信号信息(因为在比较器中断后打开 adc 需要时间)。
另一种是使用定时器以指定的时间间隔对 adc 进行采样,但由于信号是随机的,因此可能会错过信号。
哪个会更好,或者有其他解决方案吗?请帮助我.... 另外,我想知道内部 ADRC 振荡器的频率。
binary - 将 ADC 16 位数量转换回原始输入?
所以我有一个 adc 将模拟信号转换为无符号的 16 位量,我如何能够将这个 16 位值转换回原始输入?
例如,我有一个介于 -5v 和 5v 之间的输入电压,它被转换为 16 位无符号数,我试图设置一个公式将其转换回原始值。
所以在这里我只有10v的范围,据我所知,我只需将16位值转换为十进制并减去范围的一半以获得原始值吗?
所以我的方程会是这样的
其中 10 是电压范围,2^16 是我的数字代码数,-5 是我的偏移量,但这似乎太简单了,我几乎肯定它不正确,这是 adc 的工作方式吗?
我一直在参考我在 google 上找到的这个 powerpoint
谢谢
c - 模拟输入引脚 PA8、PA11 和 PA12 在 STM32F103RB 上不起作用
处理一个简单的 ADC 项目,从多个通道上的分压器读取电压。我在商业且制作精良的 PCB 上使用 STM32f103rb。我正在读取 PORTA 上的引脚,以下引脚工作并返回电压:
PA0、PA1、PA4、PA5、PA6、PA7。
但是,以下引脚不起作用并返回大约 2000-2700 的原始值:
PA8、PA11 和 PA12。
项目的性质和 PCB 是固定设计的事实意味着我们被这些引脚选择所困扰。数据表非常具体地说明这些引脚可用作 AIN。所有设置和配置均按照标准 STM32,取自基本示例代码并为我们的目的而修改。包含的代码是我们为了寻找原因而制作的调试版本,但无济于事。
已测量引脚上的电压,并且对于分压器的类型是正确的。
任何帮助将不胜感激。
filtering - 在使用 ADC 的情况下如何决定截止滤波器的频率(流程:模拟信号到 ADC 到位到 fir_filter 到 filters_output)
- 必须使用 FIR 滤波器来消除噪声。我不知道可能会叠加到我正在采用的模拟反馈信号中的噪声频率。
- 我的设备由模拟反馈信号组成,然后我使用 ADC 将值数字化现在我必须应用 FIR 滤波器来消除噪声,现在我不确定从环境或某种类型的模拟信号中加起来的噪声是什么噪声噪音来自 ADC 吗?
- 我必须在 vhdl 中对此进行编码。(这部分很容易我可以做到)。
我的主要问题是确定频率。
提前致谢 !我正在标记 vhdl,因为一些在 vhdl 中工作的人可能知道过滤器。
comparator - 为什么 PIC 单片机上的比较器会不断产生中断
我正在尝试在 PIC18F46K22 上使用两个比较器模块,其中一个比较器不断产生中断。
这个想法是在模拟输入发生变化时唤醒程序。两个 DAC 提供比模拟输入值略高和略低的参考值。这些连接到比较器的正极引脚。模拟输入是负引脚。
当中断程序中发生来自比较器的中断时,我禁用比较器模块和比较器中断并清除中断标志。
在我的主线中,我将模拟输出值采样到两个参考 DAC,然后重新启用比较器和比较器中断。
问题是每次我这样做时,比较器都会立即产生一个中断,因此程序永远不会休眠。我尝试增加 DAC 的参考值,但仍然出现中断。
有谁知道为什么会发生这种情况?
avr - ATmega2560 ADC 通道
我一直在使用 ATmega128,现在我正在研究 ATmega2560。我已经在 128 中尝试过 ADC。当我在 2560 中尝试时,除了更改它时,我没有问题。我在 codevision 中编写了这段代码。仅使用单个通道时效果很好,但是在更改通道时会出现不稳定的行为。问题是什么 ?
这里的代码
Main里面的处理函数是这样的:
我使用温度传感器 TMP36 输入 ADC3,在 20 C 时,输出电压约为 0.7 V。当仅使用 ADC 3 和 2.56 V 参考电压时,从 ADCH 和 ADCL 获取的值是 0x118。同样,我将 ADC1 连接到在正常情况下输出 2.48 伏的电压源。当我只使用参考电压为 5 伏的 ADC1 时,ADCH 和 ADCL 的输出为 509。随着电压的变化,ADCH 和 ADCL 寄存器也相应变化。当我调用函数以 2 和 3 秒的间隔读取 ADC1 和 ADC3 时,如代码所示,在相同的电压下,ADCH 和 ADCL 的内容与上面不同。ADC3 的 ADCH,L 为 137-140,ADC1 的 ADCH,L 为 340-352。