#はじめに
ガチガチの機械系が初めての電子工作に挑戦しました.
多少,言葉のミスがあるかと思いますが,大目に見てください
#やること
1.ESCONのチューニング
2.PSoCからduty比をESCONに入力してモータを回転させる
3.モータの回転数をTeraTermに出力する
#使用するもの
*PSoC5LP PrototypingKit
*ESCON 50/5
*モータ(maxon RE40)※エンコーダ付き
*USB A-MicroB ケーブル
*USB A(オス)-A(メス)ケーブル
*配線等
#環境
*PSoC Creater 4.3
*ESCON Studio 2.2
#準備
ESCONを使うにあたって,事前準備が必要です.
まず,「ESCON Studio」というコントローラの初期設定ソフトを自分のPCにインストールします.
下記リンクからESCON Studioをインストールします.(2020/12 確認済み)
https://www.maxongroup.co.jp/maxon/view/content/ESCON-Detailsite
また,ESCON Studioの進め方はゲッティングスタートを見ながらやるのをお勧めします!!
###~1.ESCONのチューニング~
インストールできたらESCON Studioを開いて,指示に従ってUSBケーブルをPCとESCONを接続します.
その後,ゲッティングスタートを見ながら進めます.
モータのパラメータ,制御方法,入出力端子などの選択をします.
全行程の設定が完了したら,最後に「自動チューニング」を選択し,下記のように接続し,「開始」ボタンを押します.
#コード
###~2.PSoCからduty比をESCONに入力してモータを回転させる~
for文でPSoCのPWMコンポーネントのduty比を変化させて,加減速させています.
#include "project.h"
#include <stdio.h>
int main(void)
{
CyGlobalIntEnable; /* Enable global interrupts. */
/* Place your initialization/startup code here (e.g. MyInst_Start()) */
PWM_Start();
UART_Start();
ADC_SAR_Start();
int i;
int16 count=0;
char String_count[64]={'\0'};
LED_Write(1);
Rotation_Write(1);
Enable_Write(1);
for(;;)
{
/* Place your application code here. */
ADC_SAR_StartConvert();
for(i=0;i<200;i++)
{
PWM_WriteCompare(i);
CyDelay(10);
count=ADC_SAR_GetResult16();
sprintf(String_count,"%d\r\n",count);
UART_PutString(String_count);
if(SW_Read()==0)
{
Stop_Write(1); /*Switchが押されたら動作停止*/
}
}
for(i=199;i>0;i--)
{
PWM_WriteCompare(i);
CyDelay(10);
count=ADC_SAR_GetResult16();
sprintf(String_count,"%d\r\n",count);
UART_PutString(String_count);
if(SW_Read()==0)
{
Stop_Write(1); /*Switchが押されたら動作停止*/
}
}
}
}
###~3.モータの回転数をTeraTermに出力する~
sprintf(String_count,"%d\r\n",count); UART_PutString(String_count);
で,TeraTermに出力します.
#最後に
PSoC5LPとESCONを使ってモータを回しました.
AD変換(ADC_SAR)コンポーネントを用いてESCONからのアナログ信号(回転数)をAD変換してUART通信でTeraTermで表示させました.この時にbit数について改めて勉強し直しました(;^_^A