Programming Arduino projects with the PIC microcontroller a line-by-line code analysis and complete reference guide for embedded programming in C

Now that you've built a few Arduino projects, and reused some pre-written sketches, it's time to move on to the next step and explore the world of embedded programming. To truly up-skill, you'll need to understand how your code works, and that's where this book comes in. You'...

Descripción completa

Detalles Bibliográficos
Otros Autores: Ward, Hubert Henry, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Berkeley, CA : Apress [2022]
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009633578606719
Tabla de Contenidos:
  • Intro
  • Table of Contents
  • About the Author
  • About the Technical Reviewer
  • Introduction
  • Chapter 1: Introducing MPLABX
  • MPLABX: The IDE from Microchip
  • Creating a Project in MPLABX
  • The Configuration Words
  • Creating a Header File
  • Changing the Fonts and Colors
  • The PIC Microcontroller
  • The PIC16F88 and the PIC8F4525
  • Summary
  • Chapter 2: Programming Basics
  • Good Programming Practice
  • Algorithms
  • Flowcharts
  • Program Listings
  • Program 2.1: Turning On and Off an LED
  • Algorithm for Program 2.1
  • Flowchart for Program 2.1
  • The Program Listing
  • Creating a Source File
  • Adding the Header File
  • Program 2.1
  • Analysis of Listing 2-1
  • Running Program 2.1
  • The PIC16F88 Development Board
  • The ICSP Circuit
  • Testing Program 2.1
  • Downloading Our Program
  • Summary
  • Chapter 3: The Seven-Segment Display and the Stepper Motor
  • Program 3.1: Controlling a Seven-Segment Display
  • Seven-Segment Displays
  • Common Anode Seven-Segment Display
  • Common Cathode Seven-Segment Display
  • Arrangement for a Common Anode Seven-Segment Display
  • Controlling the Display with the PIC
  • Seven-Segment Display Program
  • Algorithm for Program 3.1
  • Flowchart for Program 3.1
  • Program Listing for the Common Cathode Seven-Segment Display
  • Analysis of Listing 3-1
  • Program 3.2: 3461BS Common Anode Four Seven-Segment Display Module
  • Analysis of Listing 3-2
  • The Stepper Motor
  • Analysis of Listing 3-3
  • Summary
  • Chapter 4: The Joystick and the Stepper Motor
  • Using the Joystick
  • The Principal Operation of the Joystick
  • The ADCON0 Control Register
  • The ADCON1 Register
  • The ADCON2 Register
  • Example 1: Creating the Required Acquisition Time
  • Example 2: TAD Time
  • Changing the ADC Input Channels
  • Left or Right Justification
  • The Joystick Program
  • The LCD
  • Instruction or Command Mode.
  • Data Mode
  • Bytes and Nibbles
  • The Control Pins of the LCD
  • Analysis of Listing 4-1
  • One-Dimensional Array
  • Accessing Data in the Array
  • Using Pointers
  • Joystick and Stepper Motor
  • Analysis of Listing 4-2
  • Homemade Prototype Board for the PIC18F4525
  • Summary
  • Chapter 5: DC Motors
  • The Speed of the Simple DC Motor
  • PWM
  • Creating a Square Wave with the PWM Mode
  • Creating a 1kHz Square Wave
  • The Mark Time or Duty Cycle
  • The TMR2 Preset Value
  • Storing a Ten-Bit Number
  • Analysis of Listing 5-1
  • The Variable-Speed DC Motor Program
  • Analysis of Listing 5-2
  • A Two-Directional DC Motor Program
  • Using the L293D Driver IC
  • Controlling a Two-Wheel Drive System
  • Analysis of Listing 5-3
  • Controlling a Servo Motor
  • Analysis of Listing 5-4
  • Summary
  • Chapter 6: Ultrasonic Distance, and Humidity and Temperature Sensors
  • Using the Ultrasonic Sensor
  • The Basic Principle of Operation
  • The Principal Operation of the Program
  • Analysis of Listing 6-1
  • The DHT11 Humidity and Temperature Sensor
  • Communicating with the DHT11
  • The Use of a Pull Up Resistor
  • Checking the Timing of the Pulses
  • Analysis of Listing 6-3
  • Summary
  • Chapter 7: Working with Keypads
  • Traditional 3 × 4 Keypad Entry
  • The Need for Pull Up or Pull Down
  • Pull Down Resistors
  • Pull Up Resistors
  • Traditional Keypad Program
  • Analysis of Listing 7-1
  • Switch Bounce
  • The Membrane 4 × 4 Keypad
  • The 8 × 8 Dot Matrix Board
  • Analysis of Listing 7-3
  • Creating the Data for Each Row in the Two-Dimensional Array
  • Summary
  • Chapter 8: Using Bluetooth with PIR Motion Sensors
  • The HC-06 Module
  • Matching 5V to 3.3V
  • The Default Settings of the HC-06
  • The HC-05 Bluetooth Module
  • Connecting the PIC to a Mobile Phone via the HC-06
  • The UART
  • Analysis of Listing 8-1
  • An Important Distinction.
  • Using the Mobile APP Bluetooth Terminal
  • Changing the PIN on the HC-06
  • Using AT Commands
  • Using Tera Term to Change the PIN
  • Using PuTTY to Program the HC-06
  • Programming the HC-06 with AT Command from the PIC Micro
  • Analysis of Listing 8-2
  • The HC-SR501 PIR Motion Sensor
  • Analysis of Listing 8-3
  • Summary
  • Chapter 9: Communication
  • Getting the PIC to Communicate with  Other Devices
  • The SPI Mode
  • The Buffer Full (BF) Flag in the SSPSTAT Register
  • Synchronizing the Sequence
  • SSPSTAT Register
  • The SSPCON1 Register
  • Using the SPI to Read from the TC72
  • Operating Modes for the TC72
  • The Registers of the TC72
  • The Algorithm for Using the TC72
  • Displaying the Temperature Reading
  • Binary Numbers
  • Adding Binary Numbers
  • Analysis of Listing 9-1
  • Reading the Temperature from the TC72
  • Examples of the 2's Complement Process
  • Using the Sprintf Function
  • Analysis of Listing 9-2
  • Comparing the Two Approaches
  • Using the PIC18f4525 as the Slave
  • Analysis of Listing 9-3
  • Analysis of Listing 9-4
  • Summary
  • Chapter 10: Using the I2C Protocol
  • I2C Communication Protocol
  • EEPROM
  • 24LC256 EEPROM
  • Writing to the EEPROM
  • Reading from the EEPROM
  • TC74 Temperature Sensor
  • Reading the Temperature
  • Using I2C with 24LC256 and TC74
  • Analysis of Listing 10-1
  • That Little Thought
  • Summary
  • Chapter 11: Using the UART
  • UART at a Glance
  • Interrupts and How They Work
  • Analysis of Listing 11-1
  • The Baud Rate
  • Using Tera Term
  • Using Handshaking
  • Analysis of Listing 11-2
  • Two PICs Communicate via the UART
  • Analysis of Listing 11-3
  • Summary
  • Chapter 12: Real-Time Clock and Interrupts
  • The RTC Program
  • Analysis of Listing 12-1
  • The DS1307 RTC Module
  • Setting Up and Reading from the DS1307
  • The I2C Protocol
  • Writing to the Slave
  • The Start Bit.
  • The Address Bits and Control Bit in the First Byte
  • The Acknowledgment Bit
  • The Data Byte
  • The Stop Bit
  • Reading from the Slave
  • The NACK or Not Acknowledgment Bit
  • Analysis of Listing 12-2
  • TM1637 and the Four Seven-Segment Display
  • The TM1367 Driver IC
  • Analysis of Listing 12-3
  • Summary
  • Chapter 13: Working with LCDs
  • Creating Your Own Characters on an LCD
  • The Pixel Maps
  • A Simple Exercise
  • Analysis of Listing 13-1
  • The CCP Module
  • Algorithm for the Bike Speed Program
  • The Speed of a Bicycle
  • Analysis of Listing 13-2
  • Finding the Program Instructions
  • Program Counter and the Stack
  • The Stack
  • The Vector Table and the ISR
  • Summary
  • Chapter 14: Analyzing Obscure Instructions and Logic Operators in C
  • Obscure C Instructions
  • Analysis of Listing 14-1
  • Some Logic Operators
  • &amp
  • Symbol
  • Testing the Programs in MPLABX
  • Analysis of Listing 14-3
  • The &amp
  • &amp
  • Operator
  • The '|' Operator
  • The '||' Operator
  • The ^ EXOR or Exclusive OR
  • The &amp
  • = Function
  • The |= Function
  • The '%' or Modulus or Remainder Operator
  • The '~' Or 1's Complement
  • The '&lt
  • &lt
  • n' or '&gt
  • &gt
  • n' Operator
  • Summary
  • Appendix: Additional Insights
  • Data Types and Memory
  • The Program Memory Area
  • The Data RAM
  • The Data EEPROM
  • Variables
  • Appendix A: Data Types
  • Appendix B: Some Useful Definitions
  • Appendix C: Mathematical and Logic Operators
  • Appendix D: Keywords
  • Appendix E: Numbering Systems Within Microprocessor-Based Systems
  • Introduction
  • Binary Numbers
  • Converting Decimal to Binary
  • Adding and Subtracting Binary Numbers
  • Subtracting Binary Numbers
  • The Hexadecimal Number System
  • Appendix F: Building Circuit Boards
  • Preparation
  • The Circuit Diagram
  • The Vero Board Plan
  • Preparing to Solder
  • Tinning the Components
  • Soldering the Components
  • Patience and Practice
  • Appendix G: The LCD Header File for Eight-Bit Mode
  • Appendix H: The ASCII Character Set
  • Appendix I: The LCD Instruction Set
  • Index.