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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

AFMotor驅動步進電機庫文件下載(L293D庫文件)

  [復制鏈接]
跳轉到指定樓層
樓主
ARDUINO驅動步進電機需要庫文件 放到library里就好了



L293D Arduino單片機源程序如下:
  1. // Adafruit Motor shield library
  2. // copyright Adafruit Industries LLC, 2009
  3. // this code is public domain, enjoy!

  4. #if ARDUINO >= 100
  5.   #include "Arduino.h"
  6. #else
  7.   #include "WProgram.h"
  8. #endif
  9. #include <avr/io.h>

  10. #include "AFMotor.h"

  11. static uint8_t latch_state;

  12. #define MICROSTEPS 16  // 8, 16 & 32 are popular

  13. //#define MOTORDEBUG 1

  14. AFMotorController::AFMotorController(void) {
  15. }

  16. void AFMotorController::enable(void) {
  17.   // setup the latch
  18.   /*
  19.   LATCH_DDR |= _BV(LATCH);
  20.   ENABLE_DDR |= _BV(ENABLE);
  21.   CLK_DDR |= _BV(CLK);
  22.   SER_DDR |= _BV(SER);
  23.   */
  24.   pinMode(MOTORLATCH, OUTPUT);
  25.   pinMode(MOTORENABLE, OUTPUT);
  26.   pinMode(MOTORDATA, OUTPUT);
  27.   pinMode(MOTORCLK, OUTPUT);

  28.   latch_state = 0;

  29.   latch_tx();  // "reset"

  30.   //ENABLE_PORT &= ~_BV(ENABLE); // enable the chip outputs!
  31.   digitalWrite(MOTORENABLE, LOW);
  32. }


  33. void AFMotorController::latch_tx(void) {
  34.   uint8_t i;

  35.   //LATCH_PORT &= ~_BV(LATCH);
  36.   digitalWrite(MOTORLATCH, LOW);

  37.   //SER_PORT &= ~_BV(SER);
  38.   digitalWrite(MOTORDATA, LOW);

  39.   for (i=0; i<8; i++) {
  40.     //CLK_PORT &= ~_BV(CLK);
  41.     digitalWrite(MOTORCLK, LOW);

  42.     if (latch_state & _BV(7-i)) {
  43.       //SER_PORT |= _BV(SER);
  44.       digitalWrite(MOTORDATA, HIGH);
  45.     } else {
  46.       //SER_PORT &= ~_BV(SER);
  47.       digitalWrite(MOTORDATA, LOW);
  48.     }
  49.     //CLK_PORT |= _BV(CLK);
  50.     digitalWrite(MOTORCLK, HIGH);
  51.   }
  52.   //LATCH_PORT |= _BV(LATCH);
  53.   digitalWrite(MOTORLATCH, HIGH);
  54. }

  55. static AFMotorController MC;


  56. /******************************************
  57.                MOTORS
  58. ******************************************/
  59. inline void initPWM1(uint8_t freq) {
  60. #if defined(__AVR_ATmega8__) || \
  61.     defined(__AVR_ATmega48__) || \
  62.     defined(__AVR_ATmega88__) || \
  63.     defined(__AVR_ATmega168__) || \
  64.     defined(__AVR_ATmega328P__)
  65.     // use PWM from timer2A on PB3 (Arduino pin #11)
  66.     TCCR2A |= _BV(COM2A1) | _BV(WGM20) | _BV(WGM21); // fast PWM, turn on oc2a
  67.     TCCR2B = freq & 0x7;
  68.     OCR2A = 0;
  69. #elif defined(__AVR_ATmega1280__)
  70.     // on arduino mega, pin 11 is now PB5 (OC1A)
  71.     TCCR1A |= _BV(COM1A1) | _BV(WGM10); // fast PWM, turn on oc1a
  72.     TCCR1B = (freq & 0x7) | _BV(WGM12);
  73.     OCR1A = 0;
  74. #endif
  75.     pinMode(11, OUTPUT);
  76. }

  77. inline void setPWM1(uint8_t s) {
  78. #if defined(__AVR_ATmega8__) || \
  79.     defined(__AVR_ATmega48__) || \
  80.     defined(__AVR_ATmega88__) || \
  81.     defined(__AVR_ATmega168__) || \
  82.     defined(__AVR_ATmega328P__)
  83.     // use PWM from timer2A on PB3 (Arduino pin #11)
  84.     OCR2A = s;
  85. #elif defined(__AVR_ATmega1280__)
  86.     // on arduino mega, pin 11 is now PB5 (OC1A)
  87.     OCR1A = s;
  88. #endif
  89. }

  90. inline void initPWM2(uint8_t freq) {
  91. #if defined(__AVR_ATmega8__) || \
  92.     defined(__AVR_ATmega48__) || \
  93.     defined(__AVR_ATmega88__) || \
  94.     defined(__AVR_ATmega168__) || \
  95.     defined(__AVR_ATmega328P__)
  96.     // use PWM from timer2B (pin 3)
  97.     TCCR2A |= _BV(COM2B1) | _BV(WGM20) | _BV(WGM21); // fast PWM, turn on oc2b
  98.     TCCR2B = freq & 0x7;
  99.     OCR2B = 0;
  100. #elif defined(__AVR_ATmega1280__)
  101.     // on arduino mega, pin 3 is now PE5 (OC3C)
  102.     TCCR3A |= _BV(COM1C1) | _BV(WGM10); // fast PWM, turn on oc3c
  103.     TCCR3B = (freq & 0x7) | _BV(WGM12);
  104.     OCR3C = 0;
  105. #endif
  106.     pinMode(3, OUTPUT);
  107. }

  108. inline void setPWM2(uint8_t s) {
  109. #if defined(__AVR_ATmega8__) || \
  110.     defined(__AVR_ATmega48__) || \
  111.     defined(__AVR_ATmega88__) || \
  112.     defined(__AVR_ATmega168__) || \
  113.     defined(__AVR_ATmega328P__)
  114.     // use PWM from timer2A on PB3 (Arduino pin #11)
  115.     OCR2B = s;
  116. #elif defined(__AVR_ATmega1280__)
  117.     // on arduino mega, pin 11 is now PB5 (OC1A)
  118.     OCR3C = s;
  119. #endif
  120. }

  121. inline void initPWM3(uint8_t freq) {
  122. #if defined(__AVR_ATmega8__) || \
  123.     defined(__AVR_ATmega48__) || \
  124.     defined(__AVR_ATmega88__) || \
  125.     defined(__AVR_ATmega168__) || \
  126.     defined(__AVR_ATmega328P__)
  127.     // use PWM from timer0A / PD6 (pin 6)
  128.     TCCR0A |= _BV(COM0A1) | _BV(WGM00) | _BV(WGM01); // fast PWM, turn on OC0A
  129.     //TCCR0B = freq & 0x7;
  130.     OCR0A = 0;
  131. #elif defined(__AVR_ATmega1280__)
  132.     // on arduino mega, pin 6 is now PH3 (OC4A)
  133.     TCCR4A |= _BV(COM1A1) | _BV(WGM10); // fast PWM, turn on oc4a
  134.     TCCR4B = (freq & 0x7) | _BV(WGM12);
  135.     //TCCR4B = 1 | _BV(WGM12);
  136.     OCR4A = 0;
  137. #endif
  138.     pinMode(6, OUTPUT);
  139. }

  140. inline void setPWM3(uint8_t s) {
  141. #if defined(__AVR_ATmega8__) || \
  142.     defined(__AVR_ATmega48__) || \
  143.     defined(__AVR_ATmega88__) || \
  144.     defined(__AVR_ATmega168__) || \
  145.     defined(__AVR_ATmega328P__)
  146.     // use PWM from timer0A on PB3 (Arduino pin #6)
  147.     OCR0A = s;
  148. #elif defined(__AVR_ATmega1280__)
  149.     // on arduino mega, pin 6 is now PH3 (OC4A)
  150.     OCR4A = s;
  151. #endif
  152. }



  153. inline void initPWM4(uint8_t freq) {
  154. #if defined(__AVR_ATmega8__) || \
  155.     defined(__AVR_ATmega48__) || \
  156.     defined(__AVR_ATmega88__) || \
  157.     defined(__AVR_ATmega168__) || \
  158.     defined(__AVR_ATmega328P__)
  159.     // use PWM from timer0B / PD5 (pin 5)
  160.     TCCR0A |= _BV(COM0B1) | _BV(WGM00) | _BV(WGM01); // fast PWM, turn on oc0a
  161.     //TCCR0B = freq & 0x7;
  162.     OCR0B = 0;
  163. #elif defined(__AVR_ATmega1280__)
  164.     // on arduino mega, pin 5 is now PE3 (OC3A)
  165.     TCCR3A |= _BV(COM1A1) | _BV(WGM10); // fast PWM, turn on oc3a
  166.     TCCR3B = (freq & 0x7) | _BV(WGM12);
  167.     //TCCR4B = 1 | _BV(WGM12);
  168.     OCR3A = 0;
  169. #endif
  170.     pinMode(5, OUTPUT);
  171. }

  172. inline void setPWM4(uint8_t s) {
  173. #if defined(__AVR_ATmega8__) || \
  174.     defined(__AVR_ATmega48__) || \
  175.     defined(__AVR_ATmega88__) || \
  176.     defined(__AVR_ATmega168__) || \
  177.     defined(__AVR_ATmega328P__)
  178.     // use PWM from timer0A on PB3 (Arduino pin #6)
  179.     OCR0B = s;
  180. #elif defined(__AVR_ATmega1280__)
  181.     // on arduino mega, pin 6 is now PH3 (OC4A)
  182.     OCR3A = s;
  183. #endif
  184. }

  185. AF_DCMotor::AF_DCMotor(uint8_t num, uint8_t freq) {
  186.   motornum = num;
  187.   pwmfreq = freq;
  188. ……………………

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

所有資料51hei提供下載:
AFMotor.rar (7.38 KB, 下載次數: 180)




評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:520542 發表于 2019-4-24 15:50 | 只看該作者
我準備在 用這個驅動在L293D文件里面驅動 28BYJ-48步進電機,不知道具體如何操作。
回復

使用道具 舉報

板凳
ID:510469 發表于 2019-7-8 09:57 | 只看該作者
感謝分享
回復

使用道具 舉報

地板
ID:168565 發表于 2019-12-26 14:07 | 只看該作者
謝謝分享
回復

使用道具 舉報

5#
ID:168565 發表于 2019-12-26 14:08 | 只看該作者
謝謝分享
回復

使用道具 舉報

6#
ID:691753 發表于 2020-2-10 17:00 | 只看該作者

我準備在 用這個驅動在L293D文件里面驅動 28BYJ-48步進電機,不知道具體如何操作。
回復

使用道具 舉報

7#
ID:696970 發表于 2020-2-23 15:35 | 只看該作者
好東西,我來下載了
回復

使用道具 舉報

8#
ID:696970 發表于 2020-2-23 15:35 | 只看該作者
好東西
回復

使用道具 舉報

9#
ID:825969 發表于 2020-10-20 11:51 | 只看該作者
謝謝,這個板就是占用的IO口太多
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久国产 | 久久99国产精一区二区三区 | 中文字幕日韩三级 | 免费在线观看成人av | 久久一区二区三区四区 | 日韩中文在线 | 国产欧美日韩在线观看 | 国产一区视频在线 | 亚洲五码在线 | 亚洲视频不卡 | 久久久久国产精品人 | 成人毛片在线视频 | 国产精品免费播放 | 天天天堂| 伊人久久大香线 | 69av片| 亚洲福利av | 国产粉嫩尤物极品99综合精品 | 成人欧美一区二区三区在线观看 | 国产永久免费 | 韩日精品一区 | 国产成人一区二区三区 | 日韩精品 | 日韩中文字幕 | 国产精品久久久久久久久久久久冷 | 日韩欧美中文在线 | 五月激情综合网 | 亚洲精品一区二区久 | 国产乱码高清区二区三区在线 | 精品一二区 | 精品国产18久久久久久二百 | 深夜福利影院 | 精品国产一区二区三区久久影院 | 中文字幕乱码亚洲精品一区 | 国产91中文 | 91精品国产综合久久久久久丝袜 | 亚洲精品一区二区三区 | 国产农村妇女精品一二区 | 欧美电影网 | 成人av网页| 精品成人av |