질문게시판 > 로드셀을 이용한 모터 제어입니다

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > 질문게시판

로드셀을 이용한 모터 제어입니다

페이지 정보

작성자 정욱스 작성일21-11-26 20:19 조회744회 댓글1건

본문

로드셀에 가하는 압력이 2kg 미만일시 정방향 회전, 2kg 이상일시 역방향 회전하는 코딩입니다.

업로드에는 성공하였는데 시리얼 모니터에 압력을 측정하려하니 압력과 관계없이 쭉 1kg만 측정이 자동으로 되고 있습니다.

그리고 모터에는 미세한 진동만 발생하는 정도입니다.

무엇이 잘못되었는지 궁금합니다... ㅠㅠ 도와주세요

 

 

#include <avr/io.h>

#include <util/delay.h>

unsigned char mode = 0;

unsigned char count = 0; //fore 214

unsigned char arr_index = 0; // 01944

unsigned char offset = 0; //offset 21

long int adc_value[10] = {0}; //adca 23 b

long int cal_adc_value = 0; //adczt 107 EC COLE E

long int loadsell_to_avr = 0; //adcz

char phase[8] = {0x0l, 0x02, 0x04, 0x08, 0x0l, 0x02, 0x04, 0x08}; //1A AH814

void serial(unsigned long baud)

{

  

unsigned short ubrr = 0;

ubrr = (unsigned short) (F_CPU/(16*baud)-1);

 

UBRR0H = (unsigned char) (ubrr >> 8);

UBRR0L = (unsigned char) (ubrr & 0xff);

UCSR0C = 0x06; 

UCSR0B = 0x18; // IEEEX, 4, 402

}

 

void tx_data(unsigned char data)

{

  

while ((UCSR0A & 0x20) == 0x00);

UDR0 = data;

 

}

 

long int get_adc (void)

 

{

loadsell_to_avr = 0 ;

for(count = 0; count < 24 ; count++)

 

{

  

_delay_us (1);

PORTA = 0x01;

_delay_us (1);

loadsell_to_avr = loadsell_to_avr << 1;

PORTA = 0x00;

 

_delay_us(1);

 

if ((PINA & 0x02) == 0x02) loadsell_to_avr++;

 

}

 

_delay_us(1);

 

PORTA = 0x01;

 

_delay_us (1);

 

PORTA = 0x00;

 

_delay_us (1);

 

loadsell_to_avr = 0x800000;

loadsell_to_avr -= 8348000;

if (loadsell_to_avr <0) loadsell_to_avr = 0; //279 H 2 O

return loadsell_to_avr;

 

}

 

void output(void)

 

{

  

//지난 10번의 평균 출력

 

adc_value[arr_index] = get_adc()/400; //scale

 

arr_index++;

if(arr_index == 10) arr_index = 0;

cal_adc_value = 0; //

for (count = 0; count <10; count++) cal_adc_value += adc_value [count];

cal_adc_value /= 10; //

 

 

if((UCSR0A & 0x20)== 0x20)

 

{

  

tx_data(cal_adc_value%10000/ 1000+ '0');

tx_data(cal_adc_value%1000/100 + '0' ); //84

tx_data('.');

 

tx_data(cal_adc_value%100/10 + '0'); //

tx_data(cal_adc_value%10 + '0'); //

tx_data('k');

tx_data('g');

tx_data(0x0d);

 

}

}

 

int main(void)

 

{

  

DDRA = 0x01; //PAO:CLKÉS, PAI:DAT (213)

DDRE = 0x02; //1/RX_DATA(9), TX DATA (29)

DDRF = 0x0f; // 1,2,3,4

 

serial(9600); //2015 9600

 

while(1)

{

  

 

_delay_ms(10);

output(); // E! 29

 

if(cal_adc_value%1000 < 200) mode = 0; //2kg Die

 

else if(cal_adc_value%1000 >= 200) mode = 1; //2kg Ola

 

switch (mode)

{

case 0:

{

  

for (count = 0; count <8; count++)

{

  

PORTF = phase [count];

 

_delay_ms(10);

 

}

 

break;

 

}

 

 

case 1:

{

  

 

//역방향 구동

 

for (count = 7; count > 0; count--)

 

{

 

PORTF = phase [count];

 

_delay_ms(10);

 

}

 

break;

}

}

}

}

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글 : 1

조회수 : 744

master님의 댓글

master 작성일

전원장치의 전류용량이 부족해서 발생하는 문제로 보입니다만
로드셀 예제만 돌려서 정상동작하는지 확인하고
모터 예제만 돌려서 정상동작하는지 확인하세요

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[24] master  17-10-29
질문 ATmega128 스위치 채터링 관련 질문드립니다 댓글[1] yeon 새글 05:32
질문 마이크로칩 스튜디오 코드 해석 최선을다하자 새글 00:08
답변 답변 : 마이크로칩 스튜디오 코드 해석 master 새글 06:31
질문 적외선 거리 센서로 블루투스 알람 설정 코딩... 댓글[1] ededed 새글 22-05-26
질문 아두이노 api 질문 댓글[1] 첨부파일리니어 새글 22-05-26
질문 atmega128 키패드 입력 오류에 대하여 질문 있습… 댓글[2] 마프하나 새글 22-05-26
질문 초음파센싱을 통한 리니어벨트 (스텝모터사용) 조건문 댓글[1] 아두이노대학 새글 22-05-26
질문 아트메가128/ srf05 초음파센서를 이용한 타이머 … 아트메가넘어려워 새글 22-05-26
답변 답변 : 아트메가128/ srf05 초음파센서를 이용한… master 새글 22-05-26
질문 atmega128에서 스위치1개는LED, 스위치 1개는… aasdw 새글 22-05-26
답변 답변 : atmega128에서 스위치1개는LED, 스위… 댓글[1] master 새글 22-05-26
질문 Atmega128 블루투스 오류 질문 yhj2644 새글 22-05-26
답변 답변 : Atmega128 블루투스 오류 질문 master 새글 22-05-26
질문 아두이노 간단한 프로그램 행복지수업 새글 22-05-25
답변 답변 : 아두이노 간단한 프로그램 master 새글 22-05-26
질문 atmega128 타이머 작성시 키패트 입력으로 인터럽… 댓글[1] 마프하나 새글 22-05-25
질문 로드셀 무게 센서 질문드립니다. 댓글[2] 제비고기 새글 22-05-25
질문 adc, uart dma 댓글[3] 첨부파일hiㅡO3O 새글 22-05-25
질문 ADC,uart DMA 댓글[1] 첨부파일hiㅡO3O 새글 22-05-25
질문 아두이노 스텝모터 리미트 문의드립니다. 댓글[4] 첨부파일스트렌져  22-05-24
질문 진동센서와 서보모터 연결 코드 질문입니다! 댓글[1] 제리  22-05-24
질문 atmega128 GPS,블루투스 질문드립니다. 댓글[1] 코딩초보1  22-05-24
질문 서보모터 제어에 관하여 궁금합니다 댓글[3] 첨부파일오소로롯  22-05-24
질문 atmega 128 타이머 작성 중 질문 드립니다. 댓글[8] 마프하나  22-05-23
질문 아두이노와 휴대폰을 HC-06으로 연결시켜서 블루투스연… 댓글[1] 졸작부수다  22-05-23
답변 답변 : 아두이노와 휴대폰을 HC-06으로 연결시켜서 … master  22-05-24
질문 보드레이트 질문 댓글[1] 죠르디  22-05-23
질문 atmega 128 블루투스 질문 입니다 댓글[1] yhj2644  22-05-23
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전