'2015/02/03'에 해당되는 글 2건

  1. 2015.02.03 ADC와 Lego Mindstorm
  2. 2015.02.03 제어문, 수의 표현 그리고 포인터
Busan IT/제어기초2015. 2. 3. 17:31


20150203 - ADC와 Lego Mindstorm.hwp


학습목표 - ADC의 원리를 이해하고 종류에 대해 안다

 

 

ADC

 

아날로그 변환을 A/D변환을 거쳐 아날로그로 바꾸는 원리이다.

 

원리<그림>:계단 모양으로 아날로그 입력 전압에 따른 디지털 출력

디지털 출력의 폭이 좁을수록 분해능이 좋다라고 표현한다.

 

카운터 램프형(추적형) AD 변환기<그림>

아날로그 입력>귀환 전압 -> x=1

 

램프형 A/D변환기<그림>

아날로그 압력전압이 높아질수록 카운트를 하기 위한 시간이 길어지는 단점이 있다.

아날로그 전력이 클럭보다 클 때 1이 발생되어 변환된다.

 

축자 근사형 A/D변환기

최상위 비트로부터 순서대로 하위 비트 쪽으로 수정하여 가는 방법으로 DAC의 출력을 훨씬 빨리 아날로그 입력 전압에 근사 시킨다.

100-110-111-110의 과정으로 최종적으로 디지털 변환출력 110을 얻는다.

비교적 변환시간이 빠르고 회로도 간단하여 현재 저가형 이면서 분해능이 비교적 높은 범용A/D Converter에 가장 널리 사용되고 있다.

변환 중에 아날로그 입력전압에

 

잡음 제거 방법

독립적인 아날로그 회로 전원 단자 AVCC 및 기준 전원 입력단자 AREF를 가지고 있음에도 불구하고 A/D컨버터는 잡음에 상당히 민감하다.

아날로그 입력 선은 최소한 짧게 잡음의 영향을 받지 않도록 AVCC는 디지털 전원 VCCLC필터로 안정화 시켜 인가

A/D변환 결과가 잡음 등에 의하여 흔들리는 경우에는 디지털 필터를 사용하거나, 여러번 A/D변환하여 읽어 들인 결과를 평균 처리하여 사용하면 좋다.

LEGO MINDSTORM

 

소프트웨어 설치 및 기본 설정

 

LEGO Mindstorm NXT 소프트웨어를 레고 홈페이지에서 다운로드 받는다.

 

 

반응형

'Busan IT > 제어기초' 카테고리의 다른 글

LEGO - Mindstorm #2  (0) 2015.02.05
LEGO - Mindstorm  (0) 2015.02.04
마이크로 컴퓨터와 ADC & DAC  (0) 2015.02.02
마이크로 컨트롤러와 프로그램  (0) 2015.01.30
전기회로와 트랜지스터/캐피시터  (0) 2015.01.29
Posted by newind2000
Busan IT/제어언어2015. 2. 3. 17:30


20150203-제어문, 수의 표현 그리고 포인터.hwp

제어문과 수의 표현 그리고 포인터

 

#1. ASCII Code 제어문

 

학습목표 - ASCII Code에서 사용되는 제어문 개념에 대해 이해한다.

 

C프로그램이 어떻게 실행파일을 만들어 내는가에 대해 지난 시간에 학습하였다.

 

C프로그램은 *.exe의 실행파일이 만들어지고, 리눅스에서는 확장자가 없이 표시된다.

 

오늘은 제어문에 대해서 배워본다.

 

* 다음 주 월요일 책 배포 예정

 

printf("%d,c,u,x,o,f)

 

c = 아스키코드를 표현한다.

 

명령어 끝에 엔터(\n)를 넣어줘야 한다. 리눅스 환경에서는 자동으로 엔터를 넣어주지 않기 때문에 리눅스 작성환경을 대비하여 엔터를 넣어주는 습관을 들인다.

 

줄 바꿈과 엔터는 다르다. 줄 바꿈은 다음 줄로 내려오는 것이고, 엔터는 줄을 바꾸고 커서도 제일 앞으로 옮겨주는 역할을 한다.

 

ASCII code(128)

 

0 - 31 (32) : 제어문자

역슬레쉬는 cl에서 해석하지 않는다. \n의 경우 단순히 n으로 해석하지 않고 엔터로 해석한다.

 

도스에서만 10번이 엔터 역할을 한다.(줄 내림, 커서 제일 앞으로 이동)

 

10번은 CR + LF

 

파일명을 bin으로 변경한 후 Visual Studio에서 실행해보면 Magic Number가 나타나고 이것은 파일의 형식을 나타내준다. ex) MZ는 윈도우 파일, BM 비트맵



 

#2. 숫자의 정렬과 표시(실습)

 

 

실습) 1. 3 * 3 = 9%d 3개와 printf 1개를 써서 출력하여라.

2. 구구단을 3단을 전부 적고 1의 자리는 결과 값을 나머지 값들과 같은 자리 수에 표 현 되게 정렬하여라.

3. 실수 3.2의 소수점 2자리까지만 표시되게 출력하여라.




 

%d사이에 숫자를 넣으면 그만큼 공간이 확보된다.

기본은 %와 문자 사이에 숫자를 넣으면 오른쪽으로 밀리게 된다.(왼쪽에 빈공간이 생긴다)

사이에 ‘-’를 붙이면 왼쪽정렬(오른쪽에 빈공간이 생긴다)

표현하는 자리수보다 적은 숫자를 사이에 넣어도 내용은 다 표시된다.

숫자 다음에 점을 찍고 숫자를 넣으면 소수점 이하에 출력하고자하는 자리수를 나타낸다.

 

변수를 대괄호로([]) 넣고 표현하면 감춰진 내용도 볼 수 있다.

#3. 포인터의 주소 표시

 

실습) 1. int iNum=100을 설정하고 printfiNum의 값과 주소(16진수로)를 표시 한다.

 

주소 출력 시 %08X 출력 한다 -> %p로 대체된다.

 

%d, c, f, u, x 는 기본 암기가 필요하다.

 

 

** 해킹 방지를 위해 심볼 테이블의 address는 계속 바뀌지만 CPU에서는 해당 주소를 보고 위치를 알아낼 수 있다.

 

** 원하는 사이트의 IP 주소를 알아내기 위해서는 DOS창에서

ping_‘도메인 주소를 입력하면 된다.

#4. Visual Studio에서 고정 포인터

 

기계어를 이해할수록 짜여진 프로그램에 대해 조작이 가능하다.

 

Java는 사용자가 주소를 건들지 못하게 보호되어 있다.

 

C언어 쪽이 컴퓨터에 대한 이해도가 높아야하며 컴퓨터의 최적화에 알맞다.

 

* JVM(Java Virtual Machine)

 

숫자를 주소 값을 넣는 것을 배운다.

 

조작하는 DOS창을 Console이라고 부르기도 한다. Win32 = window 32bit

 

MFC C++ 윈도우 작성하는 경우

 

Makefile Project는 윈도우 창 작성

 

엠티 프로젝트를 선택하여 창을 연다.

반응형
Posted by newind2000