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

標題: PT2315/TDA7315音量音調(diào)控制 Arduino庫 源程序 [打印本頁]

作者: hua_bang_yu    時間: 2017-4-16 22:33
標題: PT2315/TDA7315音量音調(diào)控制 Arduino庫 源程序
一直用ICCAVR,單片機幾天不用又要重新查資料,直到遇到Arduino.
一直都索取,今天我也來奉獻點力量--PT2315庫。
其實很早就想寫,但是一直就是懶,每天在網(wǎng)上搜“Arduino控制PT2315”,一直都找不到,哈哈。
PT2315是干什么的?喜歡玩音響的應(yīng)該不陌生,與PT2313、PT2314功能差不多。
英語不是我的母語,所以能用中文的,我不會用英文,相信大家應(yīng)該都看得懂。
庫里面有兩個例子,一個簡單,內(nèi)容:
#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關(guān)閉
}

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


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

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

下載:
PT2315.rar (4.15 KB, 下載次數(shù): 118)

作者: admin    時間: 2017-4-16 22:39
PT2315.h文件內(nèi)容:
  1. /*
  2. 通過TWI對PT2315的音量、高音、低音、等響度進行控制
  3. 音量控制范圍0~63 例:volume(12);
  4. 高音和低音的控制范圍0~7.例:treble(7);//高音  bass(3);//低音
  5. 等響度打開與關(guān)閉 例: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) //發(fā)出 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
復(fù)制代碼

作者: admin    時間: 2017-4-16 22:40
PT2315.cpp文件內(nèi)容
  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黑下載附件…………
復(fù)制代碼

作者: YQS    時間: 2017-5-2 10:43
謝謝樓主分享好資源!正需要這方面的資料,樓主可否分享電路原理圖嗎?非常感謝。
作者: zxy2266    時間: 2017-5-8 19:01
沒幣,先收藏吧
作者: lekeak47    時間: 2018-11-14 16:05
正在研究這個東西,謝謝分享
作者: lekeak47    時間: 2018-11-16 14:50
好東西,學(xué)習(xí)學(xué)習(xí)
作者: wf66com    時間: 2019-1-21 15:10
你好,我按照你發(fā)的pt2315代碼,調(diào)試過程中發(fā)現(xiàn)沒聲音,代碼有可能是什么原因,我用的是arduino uno的板子,方便的話給個微信或qq,謝謝
作者: wherestheway    時間: 2019-3-1 23:13
雖然不太了解,似乎有用
作者: 都市郎    時間: 2019-3-18 03:02
下載看看,手上有十幾個芯片都沒用。
作者: S886887    時間: 2019-10-9 10:08
您好!我下載資料
作者: moyu0426    時間: 2020-12-24 23:43
標記一下,后續(xù)學(xué)習(xí)
作者: qjy822    時間: 2021-7-6 13:43
看到這里,收藏一下,以后用到再看!
作者: 壞壞二世    時間: 2021-8-2 00:01
你們是怎么安裝PT2315.h這個庫的?我一直沒安裝成功。
#include <PT2315.h>  //PT2315這字一直沒變成紅色

作者: hxk110120    時間: 2023-4-26 20:00
經(jīng)過測試PT2315地址0x88




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 免费网站国产 | 国产精品久久毛片av大全日韩 | 一区二区免费在线 | 国产aaaaav久久久一区二区 | 国产一区二区在线免费播放 | 夜夜骚视频 | 中文在线播放 | 中文字幕在线观看日韩 | 6996成人影院网在线播放 | 国产三级一区二区三区 | 国产情侣久久 | 一区欧美 | 一级h片 | 黄色片在线 | 国产午夜亚洲精品不卡 | 日韩精品一区二区三区 | 亚洲 欧美 另类 综合 偷拍 | 在线国产一区二区三区 | 国产欧美日韩视频 | 国产一区二区三区欧美 | 欧美久久视频 | 国产日韩精品视频 | www四虎影视 | 国产一区二区电影网 | www.五月天婷婷 | 久久伊人精品 | 国产精品视频999 | 国产不卡一 | 亚洲成人www | 日韩精品二区 | 网站黄色av | 97精品超碰一区二区三区 | 亚洲成色777777在线观看影院 | 激情av网站 | 国产伦精品一区二区三区高清 | aa级毛片毛片免费观看久 | 91色综合| 国产人成在线观看 | 日韩欧美手机在线 | 久久99国产精品久久99果冻传媒 | 99精品国产一区二区三区 |