久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9931|回復: 14
打印 上一主題 下一主題
收起左側

PT2315/TDA7315音量音調控制 Arduino庫 源程序

  [復制鏈接]
跳轉到指定樓層
樓主
一直用ICCAVR,單片機幾天不用又要重新查資料,直到遇到Arduino.
一直都索取,今天我也來奉獻點力量--PT2315庫。
其實很早就想寫,但是一直就是懶,每天在網上搜“Arduino控制PT2315”,一直都找不到,哈哈。
PT2315是干什么的?喜歡玩音響的應該不陌生,與PT2313、PT2314功能差不多。
英語不是我的母語,所以能用中文的,我不會用英文,相信大家應該都看得懂。
庫里面有兩個例子,一個簡單,內容:
#include <PT2315.h>
PT2315 pt2315;
void setup() {
   // put your setup code here, to run once:
pt2315.init();//對音量、高音、低音等初始化

}

void loop() {
   // put your main code here, to run repeatedly:
if(音量) pt2315.volume(vVal); //vVal=0~63
if(高音) pt2315.treble(hVal); //hVal=0~7
if(低音) pt2315.bass(lVal);//lVal=0~7
if(等響度) pt2315.loudness(true);//true等響度打開,false關閉
}

另一個則是我現在正在使用中的成品,AT5104紅外發射(電風扇搖控)+紅外搖控+DS3231時間芯片+PT2315(音效控制)+12V共陽數碼管顯示時間和音量及溫度等.
代碼較長,就不貼出來了,大家下載來看吧。


PT2315_TEST:
是PT2315的簡單運用,單獨不能運行的。

MySMG:
AT5104+DS3231+紅外搖控+PT2315+12V共陽數碼管
用于電子音效控制、數碼顯示音響

下載:
PT2315.rar (4.15 KB, 下載次數: 118)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏6 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2017-4-16 22:39 | 只看該作者
PT2315.h文件內容:
  1. /*
  2. 通過TWI對PT2315的音量、高音、低音、等響度進行控制
  3. 音量控制范圍0~63 例:volume(12);
  4. 高音和低音的控制范圍0~7.例:treble(7);//高音  bass(3);//低音
  5. 等響度打開與關閉 例:loudness(1);
  6. */

  7. #ifndef PT2315_h
  8. #define PT2315_h

  9. /*-------------------------------------------------*/
  10. #include "Arduino.h"
  11. #define uchar unsigned char

  12. #define START 0x08
  13. #define RE_START 0x10
  14. #define MT_SLA_ACK 0x18
  15. #define MT_SLA_NOACK 0x20
  16. #define MT_DATA_ACK 0x28
  17. #define MT_DATA_NOACK 0x30
  18. #define MR_SLA_ACK 0x40
  19. #define MR_SLA_NOACK 0x48
  20. #define MR_DATA_ACK 0x50
  21. #define MR_DATA_NOACK 0x58

  22. #define RD_DEVICE_ADDR 0x80

  23. #define Start() TWCR=(1<<TWINT)|(1<<TWSTA)|(1<<TWEN) //發出 START 信號
  24. #define Stop()  TWCR=(1<<TWINT)|(1<<TWEN)|(1<<TWSTO)
  25. #define Wait()  {while(!(TWCR & (1<<TWINT)));}  //等待 TWINT 置位
  26. #define TestAck() (TWSR&0xf8)
  27. #define SetAck()  (TWCR|=(1<<TWEA))
  28. #define SetNoAck() (TWCR&=~(1<<TWEA))
  29. #define Twi()    (TWCR=(1<<TWINT)|(1<<TWEN))
  30. #define Write8Bit(x) {TWDR=(x);TWCR=(1<<TWINT)|(1<<TWEN);}
  31. /*-------------------------------------------------*/

  32. class PT2315
  33. {
  34. public:
  35.   void volume(uchar vVal);//音量
  36.   void loudness(bool YorN);//等響度
  37.   void bass(uchar lVal);//低音
  38.   void treble(uchar hVal);//高音
  39.   void init();//初始化
  40. private:
  41.   uchar PT2315_w(uchar wdata);
  42. };

  43. #endif
復制代碼
回復

使用道具 舉報

板凳
ID:1 發表于 2017-4-16 22:40 | 只看該作者
PT2315.cpp文件內容
  1. /*
  2. 使用說明見PT2315.h
  3. */

  4. #include "PT2315.h"
  5. #include "Arduino.h"
  6. //================================================================================
  7. //================================================================================

  8. uchar PT2315::PT2315_w(uchar wdata)
  9. {
  10.         Start();
  11.         Wait();
  12.         if(TestAck()!=START)
  13.                 return 1;

  14.         Write8Bit(RD_DEVICE_ADDR);
  15.         Wait();
  16.         if(TestAck()!=MT_SLA_ACK)
  17.                 return 1;

  18.         Write8Bit(wdata);
  19.         Wait();
  20.         if(TestAck()!=MT_DATA_ACK)
  21.                 return 1;

  22.         Stop();
  23.         return 0;  
  24. }

  25. void PT2315::volume(uchar vVal)//音量
  26. {
  27.         vVal=63-vVal;
  28.         PT2315_w(vVal);
  29. }

  30. void PT2315::loudness(bool YorN) //等響度
  31. {
  32.         if(YorN) PT2315_w(0x40);
  33.         else PT2315_w(0x44);
  34. }

  35. void PT2315::bass(uchar lVal) //低音
  36. {
  37.         lVal=111-lVal;
  38.         PT2315_w(lVal);
  39. }

  40. void PT2315::treble(uchar hVal) //高音
  41. {
  42.         hVal=127-hVal;
  43.         PT2315_w(hVal);
  44. }

  45. void PT2315::init()//初始化
  46. {
  47.   PT2315_w(0x80);    //左聲道音量最大,不控制
  48.   delay(100);
  49.   PT2315_w(0xA0);   //右聲道音量最大,不控制
  50.   delay(100);
  51.   PT2315_w(0x3E);   //音量最小
  52.   delay(100);
  53.   PT2315_w(0x7F);   //高音最小
  54.   delay(100);
  55.   PT2315_w(0x6F);   //低音最小
  56.   delay(100);


  57. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
回復

使用道具 舉報

地板
ID:167337 發表于 2017-5-2 10:43 | 只看該作者
謝謝樓主分享好資源!正需要這方面的資料,樓主可否分享電路原理圖嗎?非常感謝。
回復

使用道具 舉報

5#
ID:198286 發表于 2017-5-8 19:01 | 只看該作者
沒幣,先收藏吧
回復

使用道具 舉報

6#
ID:276790 發表于 2018-11-14 16:05 | 只看該作者
正在研究這個東西,謝謝分享
回復

使用道具 舉報

7#
ID:276790 發表于 2018-11-16 14:50 | 只看該作者
好東西,學習學習
回復

使用道具 舉報

8#
ID:471176 發表于 2019-1-21 15:10 | 只看該作者
你好,我按照你發的pt2315代碼,調試過程中發現沒聲音,代碼有可能是什么原因,我用的是arduino uno的板子,方便的話給個微信或qq,謝謝
回復

使用道具 舉報

9#
ID:483019 發表于 2019-3-1 23:13 | 只看該作者
雖然不太了解,似乎有用
回復

使用道具 舉報

10#
ID:272625 發表于 2019-3-18 03:02 | 只看該作者
下載看看,手上有十幾個芯片都沒用。
回復

使用道具 舉報

11#
ID:619207 發表于 2019-10-9 10:08 來自觸屏版 | 只看該作者
您好!我下載資料
回復

使用道具 舉報

12#
ID:867469 發表于 2020-12-24 23:43 | 只看該作者
標記一下,后續學習
回復

使用道具 舉報

13#
ID:48994 發表于 2021-7-6 13:43 | 只看該作者
看到這里,收藏一下,以后用到再看!
回復

使用道具 舉報

14#
ID:902060 發表于 2021-8-2 00:01 | 只看該作者
你們是怎么安裝PT2315.h這個庫的?我一直沒安裝成功。
#include <PT2315.h>  //PT2315這字一直沒變成紅色
回復

使用道具 舉報

15#
ID:721371 發表于 2023-4-26 20:00 來自觸屏版 | 只看該作者
經過測試PT2315地址0x88
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本免费一区二区三区四区 | 一区欧美 | 国产日韩一区二区三免费高清 | 97免费在线观看视频 | 青青草免费在线视频 | 天啪| 日韩成人免费视频 | 欧美一区二区三区小说 | 国产精品国产精品国产专区不片 | 亚洲精品电影 | 国产精品久久久乱弄 | 国产一区二区三区www | 69亚洲精品 | 国产视频一区在线 | 黄色一级大片在线免费看产 | 欧美不卡一区 | 国产在线精品一区二区 | 欧美日韩高清在线一区 | 国产精品女人久久久 | 日韩高清一区 | 欧美亚洲视频在线观看 | 久久久久国产成人精品亚洲午夜 | 91深夜福利视频 | 精品一区二区三区日本 | 九一视频在线观看 | 色av一区二区三区 | 亚洲国产欧美一区二区三区久久 | 91欧美激情一区二区三区成人 | 夜夜骑首页 | 欧美男人亚洲天堂 | a级毛片基地 | 欧美精品成人一区二区三区四区 | 亚洲一区二区免费视频 | 午夜影院在线观看免费 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 日韩成人专区 | 毛片黄片 | 亚洲国产一区视频 | 日韩视频一区二区三区 | 一级毛片免费 | 亚洲视频一区二区三区四区 |