• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

怎么通过DA转换接收MATLAB生成的数据?

04326237264758b1 2019-04-17 浏览量:861
通过matlab生成了一组随机数,有小数,现在想将这一组随机数存入单片机中,再通过10位的D/A转换成电压信号。
问:那我需要怎么修改这组随机数数据格式,使它能够被D/A接收呢?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这个要做Matlab中先进行数据处理,标准化为整数,且值范围在【0,1023】中。

    这个标准化处理需要根据你的要求进行。

    其实Matlab可以直接生成满足需要的随机值数组,比如

    s1= randi([01023]110);

    就生成了10个符合要求的数据。

    如果已经通过其他方式生成了含小数的值,则需要用一个合适的转换方法,映射到【0,1023】值范围空间中,比如乘以10再取floor整。

    • 发布于 2019-04-17
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:4
  • 10位ad接收最大数据是1023,假如生成的随机数是0到1之间的小数,那么把0到1这个小数乘1023后发送给单片机就可以了,小数不用,串口发送到单片机,单片机收到这个数给da输出
    • 发布于2019-04-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 10位ADC的进度是2的10次方,也就是1024,首先你需要知道你的matlab生成的数的最大值是多少,加入你的最大数是n,你生成的随机数的x

    计算出来的值应该是x/n*1024.舍去小数就行了,将这个数给ADC就行了

    • 发布于2019-04-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个应该是matlab上位机跟单片机有个通信协议,然后通过串口,将这些数据发送到单片机上面,单片机再通过DA转换器输出

    像这种应用,推荐你用modbus作为串口通信协议

    关于小数,小数一般是放大一个固定倍数来传输的,比如放大100倍。使之成为整数来传输

    • 发布于2019-04-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 这组随机数和单片机的DAC电压应该有一个比例关系,根据随机数计算所应该输出的电压,再根据DAC分辨率计算处输出电压的二进制大小
    • 发布于2019-04-19
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

怎么通过DA转换接收MATLAB生成的数据?