책 소개
▣ 작가 소개
저자 : 허경용
연세대학교 전자공학과 학사와 동(同)대학원 석사를 취득하였다. 이후 플로리다대학교(University of Florida)에서 컴퓨터공학 박사를 취득하였으며, 현재 동의대학교 전자공학과 교수로 재직 중
이다. 저서로는 『따라 하면서 배우는 아두이노』(2016), 『사물인터넷을 품은 아두이노』(2016), 『아트멜 스튜디오와 아두이노로 배우는 ATmega328 프로그래밍』(2015), 『핵심 예제로 배우는 아두이노 프로그래밍』(2015), 『아두이노 상상을 스케치하다』(2014)가 있다.
▣ 주요 목차
PART I ATmega128 프로그래밍 준비하기
Chapter1 마이크로컨트롤러 3
1.1 마이크로컨트롤러란 무엇인가? 3
1.2 마이크로프로세서와 마이크로컨트롤러 6
1.3 마이크로컨트롤러는 어디에 사용할 수 있을까? 7
1.4 마이크로컨트롤러를 공부하기 위해서는 무엇이 필요할까? 10
1.5 주변장치와 어떻게 데이터를 교환하나? 14
1.6 프로그램은 어떻게 만들어지나? 19
1.7 마이크로컨트롤러가 꼭 필요한가? 21
1.8 마이크로컨트롤러의 CPU vs. 데스크톱 컴퓨터의 CPU 23
1.9 요약 32
연습 문제 33
Chapter2 ATmega128 소개 34
2.1 AVR 마이크로컨트롤러 34
2.2 ATmega128의 외형적 특징 40
2.3 레지스터 45
2.4 ATmega128의 내부 구조 50
2.5 요약 67
연습 문제 68
Chapter3 개발 환경 설정 69
3.1 아트멜 스튜디오 설치 69
3.2 첫 번째 ATmega128 프로그래밍 72
3.3 요약 86
연습 문제 87
Chapter4 마이크로컨트롤러를 위한 C 언어 88
4.1 C 언어 테스트 환경 89
4.2 프로그램의 기본 구조 94
4.3 마이크로컨트롤러를 위한 C 언어 96
4.4 비트 연산자 117
4.5 요약 127
연습 문제 128
Chapter5 ATmega128 보드 129
5.1 ATmega128 보드의 구성 요소 129
5.2 ATmega128 보드 133
5.3 ATmega128 보드 사용 139
5.4 주변장치 연결 143
5.5 요약 148
연습 문제 149
Chapter6 DIY ATmega128 150
6.1 ATmega128 보드 제작 151
6.2 퓨즈 설정 160
6.3 프로그램 테스트 161
6.4 요약 164
연습 문제 164
PART II ATmega128 프로그래밍 시작하기
Chapter7 디지털 데이터 출력 167
7.1 ATmega128의 데이터 핀 167
7.2 디지털 데이터 출력을 위한 레지스터 169
7.3 블링크 171
7.4 LED 패턴 나타내기 174
7.5 요약 180
연습 문제 180
Chapter8 디지털 데이터 입력 181
8.1 풀업 저항과 풀다운 저항 182
8.2 버튼 입력 186
8.3 버튼으로 LED 시프트하기 191
8.4 디바운스 193
8.5 요약 198
연습 문제 199
Chapter9 UART 시리얼 통신 200
9.1 UART 201
9.2 UART 통신을 위한 레지스터 212
9.3 UART 라이브러리 만들기 221
9.4 문자열 수신 229
9.5 printf와 scanf 함수 사용하기 232
9.6 요약 234
연습 문제 235
Chapter10 아날로그-디지털 변환 236
10.1 ATmega128의 ADC 236
10.2 가변저항 읽기 241
10.3 아날로그-디지털 변환을 위한 레지스터 244
10.4 가변저항으로 LED 제어하기 253
10.5 AVCC는 5V인가? 255
10.6 요약 258
연습 문제 259
Chapter11 아날로그 비교기 260
11.1 아날로그 비교기 260
11.2 아날로그 비교기를 위한 레지스터 263
11.3 2개의 아날로그 입력 비교 267
11.4 요약 268
연습 문제 269
Chapter12 인터럽트 270
12.1 폴링 방식과 인터럽트 방식 270
12.2 인터럽트 272
12.3 인터럽트 처리 275
12.4 인터럽트 사용에서의 주의 사항 281
12.5 외부 인터럽트 284
12.6 요약 290
연습 문제 291
Chapter13 8비트 타이머/카운터 292
13.1 타이머/카운터 292
13.2 오버플로 인터럽트 294
13.3 비교 일치 인터럽트 299
13.4 파형 출력 301
13.5 ASSR 레지스터 306
13.6 실행 시간 알아내기 309
13.7 요약 312
연습 문제 313
Chapter14 16비트 타이머/카운터 314
14.1 16비트 타이머/카운터 314
14.2 오버플로 인터럽트 315
14.3 비교 일치 인터럽트 320
14.4 파형 출력 324
14.5 입력 캡처 329
14.6 요약 333
연습 문제 334
Chapter15 PWM 335
15.1 펄스폭 변조 335
15.2 8비트 타이머/카운터의 PWM 모드 342
15.3 16비트 타이머/카운터의 PWM 모드 347
15.4 PWM을 이용한 LED 밝기 제어 354
15.5 요약 356
연습 문제 357
Chapter16 SPI 358
16.1 SPI 358
16.2 SPI 방식의 EEPROM 363
16.3 요약 378
연습 문제 378
Chapter17 I2C 380
17.1 I2C 380
17.2 DS1307, RTC 칩 384
17.3 요약 401
연습 문제 401
PART III ATmega128 프로그래밍 활용하기
Chapter18 7세그먼트 표시장치 405
18.1 한 자리 7세그먼트 표시장치 405
18.2 네 자리 7세그먼트 표시장치 412
18.3 네 자리 7세그먼트 표시장치에 시간 표시 417
18.4 요약 421
연습 문제 422
Chapter19 디지털 입출력 확장 423
19.1 입출력 확장 423
19.2 74595 칩 425
19.3 74165 칩 431
19.4 MCP23017 436
19.5 요약 441
연습 문제 441
Chapter20 LED 매트릭스 442
20.1 LED 매트릭스 442
20.2 LED 매트릭스 제어 448
20.3 74595 직렬 입력 병렬 출력 이동 레지스터 453
20.4 요약 458
연습 문제 459
Chapter21 키 매트릭스 460
21.1 키 매트릭스 461
21.2 4×4 키 매트릭스 465
21.3 요약 469
연습 문제 470
Chapter22 텍스트 LCD 471
22.1 텍스트 LCD 471
22.2 8비트 모드 텍스트 LCD 제어 475
22.3 4비트 모드 텍스트 LCD 제어 482
22.4 요약 489
연습 문제 490
Chapter23 모터 제어 492
23.1 모터 492
23.2 DC 모터 493
23.3 서보 모터 500
23.4 스텝 모터 504
23.5 요약 515
연습 문제 516
Chapter24 릴레이 517
24.1 릴레이 517
24.2 전기기계식 릴레이 519
24.3 반도체 릴레이 523
24.4 요약 524
연습 문제 524
Chapter25 센서 525
25.1 온도 센서 526
25.2 조도 센서 530
25.3 적외선 거리 센서 533
25.4 초음파 거리 센서 536
25.5 요약 540
연습 문제 541
Chapter26 블루투스 542
26.1 블루투스 모듈 설정 543
26.2 스마트폰 설정 548
26.3 블루투스 통신 552
26.4 요약 553
연습 문제 554
Chapter27 GPS 555
27.1 GPS 555
27.2 NMEA 데이터 분석 559
27.3 요약 565
연습 문제 565
Chapter28 그래픽 LCD 567
28.1 그래픽 LCD 567
28.2 그래픽 LCD 라이브러리 571
28.3 요약 581
연습 문제 582
Chapter29 적외선 통신 584
29.1 적외선 584
29.2 적외선 데이터 포맷 586
29.3 적외선 데이터 디코딩 589
29.4 리모컨으로 LED 제어 593
29.5 요약 595
연습 문제 596
Chapter30 스피커 597
30.1 특정 주파수의 구형파 생성 597
30.2 CTC 모드를 사용한 멜로디 재생 599
30.3 위상 및 주파수 교정 모드를 사용한 멜로디 재생 602
30.4 요약 604
연습 문제 605
Chapter31 EEPROM 606
31.1 EEPROM 레지스터 607
31.2 EEPROM 라이브러리 610
31.3 요약 615
연습 문제 616
Chapter32 워치도그 타이머 618
32.1 워치도그 타이머 618
32.2 워치도그 타이머를 위한 레지스터 621
32.3 워치도그 타이머 사용하기 623
32.4 요약 628
연습 문제 628
Chapter33 퓨즈 비트 630
33.1 하이 퓨즈 631
33.2 로 퓨즈 633
33.3 확장 퓨즈 636
33.4 퓨즈 프로그래밍 637
33.5 요약 639
연습 문제 640
Chapter34 아두이노 641
34.1 아두이노 641
34.2 부트로더 644
34.3 스케치 ? 아두이노를 위한 프로그램 647
34.4 아두이노 개발 환경 설치 650
34.5 아두이노 프로그래밍 653
34.6 ISP 방식 스케치 업로드 656
34.7 아두이노 환경에서 ATmega128 사용하기 659
34.8 요약 663
연습 문제 664
부록A ATmega128 레지스터 669
부록B 마이크로컨트롤러를 위한 전자공학 678
미 주 716
찾아보기 720
저자 : 허경용
연세대학교 전자공학과 학사와 동(同)대학원 석사를 취득하였다. 이후 플로리다대학교(University of Florida)에서 컴퓨터공학 박사를 취득하였으며, 현재 동의대학교 전자공학과 교수로 재직 중
이다. 저서로는 『따라 하면서 배우는 아두이노』(2016), 『사물인터넷을 품은 아두이노』(2016), 『아트멜 스튜디오와 아두이노로 배우는 ATmega328 프로그래밍』(2015), 『핵심 예제로 배우는 아두이노 프로그래밍』(2015), 『아두이노 상상을 스케치하다』(2014)가 있다.
▣ 주요 목차
PART I ATmega128 프로그래밍 준비하기
Chapter1 마이크로컨트롤러 3
1.1 마이크로컨트롤러란 무엇인가? 3
1.2 마이크로프로세서와 마이크로컨트롤러 6
1.3 마이크로컨트롤러는 어디에 사용할 수 있을까? 7
1.4 마이크로컨트롤러를 공부하기 위해서는 무엇이 필요할까? 10
1.5 주변장치와 어떻게 데이터를 교환하나? 14
1.6 프로그램은 어떻게 만들어지나? 19
1.7 마이크로컨트롤러가 꼭 필요한가? 21
1.8 마이크로컨트롤러의 CPU vs. 데스크톱 컴퓨터의 CPU 23
1.9 요약 32
연습 문제 33
Chapter2 ATmega128 소개 34
2.1 AVR 마이크로컨트롤러 34
2.2 ATmega128의 외형적 특징 40
2.3 레지스터 45
2.4 ATmega128의 내부 구조 50
2.5 요약 67
연습 문제 68
Chapter3 개발 환경 설정 69
3.1 아트멜 스튜디오 설치 69
3.2 첫 번째 ATmega128 프로그래밍 72
3.3 요약 86
연습 문제 87
Chapter4 마이크로컨트롤러를 위한 C 언어 88
4.1 C 언어 테스트 환경 89
4.2 프로그램의 기본 구조 94
4.3 마이크로컨트롤러를 위한 C 언어 96
4.4 비트 연산자 117
4.5 요약 127
연습 문제 128
Chapter5 ATmega128 보드 129
5.1 ATmega128 보드의 구성 요소 129
5.2 ATmega128 보드 133
5.3 ATmega128 보드 사용 139
5.4 주변장치 연결 143
5.5 요약 148
연습 문제 149
Chapter6 DIY ATmega128 150
6.1 ATmega128 보드 제작 151
6.2 퓨즈 설정 160
6.3 프로그램 테스트 161
6.4 요약 164
연습 문제 164
PART II ATmega128 프로그래밍 시작하기
Chapter7 디지털 데이터 출력 167
7.1 ATmega128의 데이터 핀 167
7.2 디지털 데이터 출력을 위한 레지스터 169
7.3 블링크 171
7.4 LED 패턴 나타내기 174
7.5 요약 180
연습 문제 180
Chapter8 디지털 데이터 입력 181
8.1 풀업 저항과 풀다운 저항 182
8.2 버튼 입력 186
8.3 버튼으로 LED 시프트하기 191
8.4 디바운스 193
8.5 요약 198
연습 문제 199
Chapter9 UART 시리얼 통신 200
9.1 UART 201
9.2 UART 통신을 위한 레지스터 212
9.3 UART 라이브러리 만들기 221
9.4 문자열 수신 229
9.5 printf와 scanf 함수 사용하기 232
9.6 요약 234
연습 문제 235
Chapter10 아날로그-디지털 변환 236
10.1 ATmega128의 ADC 236
10.2 가변저항 읽기 241
10.3 아날로그-디지털 변환을 위한 레지스터 244
10.4 가변저항으로 LED 제어하기 253
10.5 AVCC는 5V인가? 255
10.6 요약 258
연습 문제 259
Chapter11 아날로그 비교기 260
11.1 아날로그 비교기 260
11.2 아날로그 비교기를 위한 레지스터 263
11.3 2개의 아날로그 입력 비교 267
11.4 요약 268
연습 문제 269
Chapter12 인터럽트 270
12.1 폴링 방식과 인터럽트 방식 270
12.2 인터럽트 272
12.3 인터럽트 처리 275
12.4 인터럽트 사용에서의 주의 사항 281
12.5 외부 인터럽트 284
12.6 요약 290
연습 문제 291
Chapter13 8비트 타이머/카운터 292
13.1 타이머/카운터 292
13.2 오버플로 인터럽트 294
13.3 비교 일치 인터럽트 299
13.4 파형 출력 301
13.5 ASSR 레지스터 306
13.6 실행 시간 알아내기 309
13.7 요약 312
연습 문제 313
Chapter14 16비트 타이머/카운터 314
14.1 16비트 타이머/카운터 314
14.2 오버플로 인터럽트 315
14.3 비교 일치 인터럽트 320
14.4 파형 출력 324
14.5 입력 캡처 329
14.6 요약 333
연습 문제 334
Chapter15 PWM 335
15.1 펄스폭 변조 335
15.2 8비트 타이머/카운터의 PWM 모드 342
15.3 16비트 타이머/카운터의 PWM 모드 347
15.4 PWM을 이용한 LED 밝기 제어 354
15.5 요약 356
연습 문제 357
Chapter16 SPI 358
16.1 SPI 358
16.2 SPI 방식의 EEPROM 363
16.3 요약 378
연습 문제 378
Chapter17 I2C 380
17.1 I2C 380
17.2 DS1307, RTC 칩 384
17.3 요약 401
연습 문제 401
PART III ATmega128 프로그래밍 활용하기
Chapter18 7세그먼트 표시장치 405
18.1 한 자리 7세그먼트 표시장치 405
18.2 네 자리 7세그먼트 표시장치 412
18.3 네 자리 7세그먼트 표시장치에 시간 표시 417
18.4 요약 421
연습 문제 422
Chapter19 디지털 입출력 확장 423
19.1 입출력 확장 423
19.2 74595 칩 425
19.3 74165 칩 431
19.4 MCP23017 436
19.5 요약 441
연습 문제 441
Chapter20 LED 매트릭스 442
20.1 LED 매트릭스 442
20.2 LED 매트릭스 제어 448
20.3 74595 직렬 입력 병렬 출력 이동 레지스터 453
20.4 요약 458
연습 문제 459
Chapter21 키 매트릭스 460
21.1 키 매트릭스 461
21.2 4×4 키 매트릭스 465
21.3 요약 469
연습 문제 470
Chapter22 텍스트 LCD 471
22.1 텍스트 LCD 471
22.2 8비트 모드 텍스트 LCD 제어 475
22.3 4비트 모드 텍스트 LCD 제어 482
22.4 요약 489
연습 문제 490
Chapter23 모터 제어 492
23.1 모터 492
23.2 DC 모터 493
23.3 서보 모터 500
23.4 스텝 모터 504
23.5 요약 515
연습 문제 516
Chapter24 릴레이 517
24.1 릴레이 517
24.2 전기기계식 릴레이 519
24.3 반도체 릴레이 523
24.4 요약 524
연습 문제 524
Chapter25 센서 525
25.1 온도 센서 526
25.2 조도 센서 530
25.3 적외선 거리 센서 533
25.4 초음파 거리 센서 536
25.5 요약 540
연습 문제 541
Chapter26 블루투스 542
26.1 블루투스 모듈 설정 543
26.2 스마트폰 설정 548
26.3 블루투스 통신 552
26.4 요약 553
연습 문제 554
Chapter27 GPS 555
27.1 GPS 555
27.2 NMEA 데이터 분석 559
27.3 요약 565
연습 문제 565
Chapter28 그래픽 LCD 567
28.1 그래픽 LCD 567
28.2 그래픽 LCD 라이브러리 571
28.3 요약 581
연습 문제 582
Chapter29 적외선 통신 584
29.1 적외선 584
29.2 적외선 데이터 포맷 586
29.3 적외선 데이터 디코딩 589
29.4 리모컨으로 LED 제어 593
29.5 요약 595
연습 문제 596
Chapter30 스피커 597
30.1 특정 주파수의 구형파 생성 597
30.2 CTC 모드를 사용한 멜로디 재생 599
30.3 위상 및 주파수 교정 모드를 사용한 멜로디 재생 602
30.4 요약 604
연습 문제 605
Chapter31 EEPROM 606
31.1 EEPROM 레지스터 607
31.2 EEPROM 라이브러리 610
31.3 요약 615
연습 문제 616
Chapter32 워치도그 타이머 618
32.1 워치도그 타이머 618
32.2 워치도그 타이머를 위한 레지스터 621
32.3 워치도그 타이머 사용하기 623
32.4 요약 628
연습 문제 628
Chapter33 퓨즈 비트 630
33.1 하이 퓨즈 631
33.2 로 퓨즈 633
33.3 확장 퓨즈 636
33.4 퓨즈 프로그래밍 637
33.5 요약 639
연습 문제 640
Chapter34 아두이노 641
34.1 아두이노 641
34.2 부트로더 644
34.3 스케치 ? 아두이노를 위한 프로그램 647
34.4 아두이노 개발 환경 설치 650
34.5 아두이노 프로그래밍 653
34.6 ISP 방식 스케치 업로드 656
34.7 아두이노 환경에서 ATmega128 사용하기 659
34.8 요약 663
연습 문제 664
부록A ATmega128 레지스터 669
부록B 마이크로컨트롤러를 위한 전자공학 678
미 주 716
찾아보기 720
01. 반품기한
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
02. 반품 배송비
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
03. 배송상태에 따른 환불안내
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
04. 취소방법
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
05. 환불시점
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
06. 취소반품 불가 사유
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |